Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何取消绑定ObjectDataSource?_C#_Asp.net_Objectdatasource_Nemerle - Fatal编程技术网

C# 如何取消绑定ObjectDataSource?

C# 如何取消绑定ObjectDataSource?,c#,asp.net,objectdatasource,nemerle,C#,Asp.net,Objectdatasource,Nemerle,CheckPara是我的OnDataBinding过程 SqlDataSource1是ObjectDataSource(它只是一个容易混淆的名称) 语言是内默尔语,但如果你懂C,你就能很容易地读出来 protected virtual CheckPara(_ : object, _ : System.EventArgs) : void { foreach(x is Parameter in SqlDataSource1.SelectParameters)

CheckPara是我的OnDataBinding过程

SqlDataSource1是ObjectDataSource(它只是一个容易混淆的名称)

语言是内默尔语,但如果你懂C,你就能很容易地读出来

  protected virtual CheckPara(_ : object,  _ : System.EventArgs) : void
      {
        foreach(x is Parameter in SqlDataSource1.SelectParameters)
            when(x.DefaultValue=="") //Cancel binding
      }
那么,当没有完全配置的ObjectDataSource时,如何取消绑定呢


或者。。。如何仅在处理完所有参数后才能运行绑定?

ASP.NET默认情况下不绑定。您必须调用
DataBind
。调用
Page.DataBind
将调用所有控件的
DataBind
方法。因此,准备好后只需调用控件的
DataBind
。使用
ObjectDataSource
时,我通常不调用
Page.DataBind

如果在Web表单(aspx)页面中声明了
ObjectDataSource
,则在
page.Load
事件之后和控件的
Load
事件之前立即调用控件的
DataBind
方法。
ObjectCreating
ObjectCreated
事件可能对您有所帮助。下面是设置业务对象的连接字符串的示例



默认情况下,ASP.NET不绑定。您必须调用
DataBind
。调用
Page.DataBind
将调用所有控件的
DataBind
方法。因此,准备好后只需调用控件的
DataBind
。使用
ObjectDataSource
时,我通常不调用
Page.DataBind

如果在Web表单(aspx)页面中声明了
ObjectDataSource
,则在
page.Load
事件之后和控件的
Load
事件之前立即调用控件的
DataBind
方法。
ObjectCreating
ObjectCreated
事件可能对您有所帮助。下面是设置业务对象的连接字符串的示例



使用ObjectDataSource的Selecting事件,放置for选择循环,如果要取消绑定,请使用e.Cacnel=true,这样就完成了

使用ObjectDataSource的Selecting事件,放置select的for循环,如果要取消绑定,请使用e.Cacnel=true,这样就完成了

默认情况下,它为我绑定:-/。我的页面上没有绑定方法\u加载。。。仅设置一些参数。找不到它绑定的地方…啊,我刚想起来。您是否在aspx文件中声明了ObjectDataSource?如果是这样的话,它将数据绑定到。。。。处理ObjectCreating事件对你有帮助吗?啊,我刚想起来。您是否在aspx文件中声明了ObjectDataSource?如果是这样,它会在Page.Load事件之后和Control.Load事件之前立即绑定数据。处理ObjectCreating事件是否会帮助您。默认情况下,它为我绑定:-/。我的页面上没有绑定方法\u加载。。。仅设置一些参数。找不到它绑定的地方…啊,我刚想起来。您是否在aspx文件中声明了ObjectDataSource?如果是这样的话,它将数据绑定到。。。。处理ObjectCreating事件对你有帮助吗?啊,我刚想起来。您是否在aspx文件中声明了ObjectDataSource?如果是这样,它会在Page.Load事件之后和Control.Load事件之前立即绑定数据。处理ObjectCreating事件将对您有所帮助。
<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