如何取消绑定ObjectDataSource?

时间:2010-03-24 06:44:26

标签: c# asp.net objectdatasource nemerle

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时如何取消绑定?

或者......只有在完成所有参数后才能运行绑定?

2 个答案:

答案 0 :(得分:3)

使用ObjectDataSource的Selecting事件,将你的for循环设置为select,如果你想取消绑定它,使用e.Cacnel = true就可以了!

答案 1 :(得分:1)

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

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


ObjectCreated

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