CheckPara是我OnDataBinding程序

SqlDataSource1是ObjectDataSource的(它仅混淆名)

语言是Nemerle,但如果你知道C#你可以很容易阅读

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

所以如何取消绑定时有未完全可配置的ObjectDataSource?

或者......我该怎么跑结合,只有当我的所有参数做?

有帮助吗?

解决方案

使用ObjectDataSource的选择时,会将您的选择的循环,如果你想取消绑定它,使用e.Cacnel =真和你做!

其他提示

ASP.NET默认不结合。你必须调用DataBind。调用Page.DataBind将调用所有控件的DataBind方法。因此,只要调用控件的DataBind准备时。我通常使用Page.DataBind时不调用ObjectDataSource

如果您已声明在Web窗体(ASPX)页的ObjectDataSource,则控制的DataBind方法立即Page.Load事件之后和控制的Load事件之前调用。该ObjectCreatingObjectCreated事件可能是对你有所帮助。下面是一个示例,其设定所述业务对象的连接字符串。


<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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top