2010-03-24 69 views
1

CheckPara是我OnDataBinding程序如何取消綁定ObjectDataSource?

SqlDataSource1是ObjectDataSource控件(這只是混淆名稱)

語言是Nemerle,但如果你知道C#你可以讀取它容易

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

所以我怎麼能取消當沒有完全配置的ObjectDataSource時綁定?

或者......我只有在完成所有參數後才能運行綁定?

回答

3

使用ObjectDataSource的選擇時,會將您的選擇的循環,如果你想取消綁定它,使用e.Cacnel =真和你做!

1

默認情況下,ASP.NET不會綁定。您必須致電DataBind。調用Page.DataBind將調用所有控件的方法DataBind。因此,只需在準備好時調用您的控件的DataBind即可。當使用ObjectDataSource時,我通常不會撥打Page.DataBind

如果你已經宣佈你的web表單的ObjectDataSource(ASPX)頁面,則控制的DataBind方法是Page.Load事件之後和控制的Load事件之前立即調用。​​和ObjectCreated事件可能對您有所幫助。以下是設置業務對象連接字符串的示例。


<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

默認爲我綁定: - /。 。 。我的Page_Load上沒有綁定方法...只設置一些參數。找不到它綁定的地方... – Cynede 2010-03-24 07:00:10

+0

啊,我只記得。你是否在aspx文件中聲明瞭ObjectDataSource?如果是這樣,它的數據綁定在... 。處理ObjectCreating事件會幫助你。 – AMissico 2010-03-24 07:14:17

+0

你可能會分享一些示例代碼...? – Cynede 2010-03-24 07:19:40

相關問題