2010-03-24 2 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. Вызов вызовет весь метод управления DataBind. Поэтому просто позвоните своему управлению DataBind, когда будете готовы. Обычно я использую ObjectDataSource.

Если вы объявили в вашем веб-формы в ObjectDataSource (ASPX) страницы, а затем DataBind метод элемента управления вызывается сразу после Page.Load события и до Load события элемента управления. События ObjectCreating и 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

связывается по умолчанию для меня: - /. , , нет методов Bind на моей странице_Load ... только настроить некоторые параметры. Не могу найти, где он связывается ... – Cynede

+0

А, я просто вспомнил. Вы объявили объект ObjectDataSource в файле aspx? Если да, то данные привязываются к ... . Помогите справиться с событием ObjectCreating. – AMissico

+0

можете ли вы поделиться примером кода ...? – Cynede

Смежные вопросы