Question

CheckPara est ma procédure de OnDataBinding

SqlDataSource1 est ObjectDataSource (il est seulement le nom de confusion)

La langue est Nemerle, mais si vous connaissez le C #, vous pouvez le lire facilement

  protected virtual CheckPara(_ : object,  _ : System.EventArgs) : void
      {
        foreach(x is Parameter in SqlDataSource1.SelectParameters)
            when(x.DefaultValue=="") //Cancel binding
      }

Alors, comment puis-je annuler la liaison quand il n'y a pas entièrement configuré ObjectDataSource?

Ou ... Comment puis-je utiliser la liaison seulement quand je fait avec tous les paramètres?

Était-ce utile?

La solution

Utilisez l'événement Sélection de ObjectDataSource, placez votre boucle de sélection et si vous souhaitez annuler le liant, utilisez e.Cacnel = true et vous avez terminé !!

Autres conseils

ASP.NET ne se lie pas par défaut. Vous devez appeler DataBind. L'appel Page.DataBind appellera la méthode de DataBind de tout contrôle. Par conséquent, il suffit d'appeler le DataBind de votre commande lorsque vous êtes prêt. Je n'appelle généralement pas Page.DataBind lorsque vous utilisez un ObjectDataSource.

Si vous avez déclaré un ObjectDataSource dans votre formulaire Web (ASPX) page, puis la méthode DataBind du contrôle est appelé immédiatement après l'événement Page.Load et avant l'événement Load du contrôle. Les événements ObjectCreating et ObjectCreated peut être utile pour vous. Voici un exemple qui définit la chaîne de connexion de l'objet métier.


<asp:ObjectDataSource 
    ID="__definitionCategoryDataSource" 
    runat="server" 
    OldValuesParameterFormatString="original_{0}" 
    SelectMethod="GetData" 
    TypeName="Missico.Data.DefinitionDataSetTableAdapters.DefinitionCategoryTableAdapter">
</asp:ObjectDataSource>

Protected Sub __definitionCategoryDataSource_ObjectCreated( _
    ByVal sender As Object, _
    ByVal e As System.Web.UI.WebControls.ObjectDataSourceEventArgs) _
    Handles __definitionCategoryDataSource.ObjectCreated

    If e.ObjectInstance IsNot Nothing Then
        SetObjectDataSourceConnectionString(e.ObjectInstance, DataManager.ConnectionString)
    End If

End Sub

Public Sub SetObjectDataSourceConnectionString( _
    ByVal objectInstance As Object, _
    ByVal connectionString As String)

    If objectInstance IsNot Nothing Then

        Dim oConnection As System.Data.Common.DbConnection

        oConnection = objectInstance.GetType.GetProperty("Connection").GetValue(objectInstance, Nothing)
        oConnection.ConnectionString = DataManager.ConnectionString

    End If

End Sub
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top