2010-03-24 6 views
1

CheckPara est ma procédure de OnDataBindingComment annuler la liaison ObjectDataSource?

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 
     } 

Comment puis-je annuler liaison lorsqu'il n'y a pas entièrement ObjectDataSource configuré? Ou ... comment puis-je exécuter la liaison uniquement lorsque j'ai terminé tous les paramètres? ASP.NET ne se lie pas par défaut à

Répondre

3

événement Selecting Utilisons ObjectDataSource, placez votre boucle de sélection et si vous souhaitez annuler la liaison, utilisez e.Cacnel = true et vous avez terminé !!

1

Vous devez appeler le DataBind. L'appel Page.DataBind appellera la méthode DataBind de tout le contrôle. Par conséquent, il suffit d'appeler DataBind de votre contrôle lorsque vous êtes prêt. Je n'appelle généralement pas Page.DataBind lorsque j'utilise 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 peuvent vous être utiles. 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 
+0

il se lie par défaut pour moi: - /. . . il n'y a pas de méthodes Bind sur mon Page_Load ... seulement configurer certains paramètres. Je ne peux pas trouver où il se lie ... – Cynede

+0

Ah, je me suis juste souvenu. Avez-vous déclaré ObjectDataSource dans le fichier aspx? Si c'est le cas, les données se lient à ... . La gestion de l'événement ObjectCreating vous aidera. – AMissico

+0

pouvez-vous partager un exemple de code ...? – Cynede

Questions connexes