Pregunta

CheckPara es mi procedimiento OnDataBinding

SqlDataSource1 es ObjectDataSource (sólo es confuso nombre)

El lenguaje es Nemerle, pero si sabes C # se puede leer que sea fácil

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

Entonces, ¿cómo puedo anular la unión cuando no se configura totalmente ObjectDataSource?

O ... ¿cómo puedo ejecutar vinculante sólo cuando he hecho con todos los parámetros?

¿Fue útil?

Solución

El uso de ObjectDataSource evento de selección, coloque el bucle de select y si desea cancelar la unión, usarlo e.Cacnel = true y ya está !!

Otros consejos

ASP.NET no se une de forma predeterminada. Debe llamar DataBind. Llamando Page.DataBind llamará método DataBind todo de control. Por lo tanto, sólo llame DataBind de tu control cuando esté listo. Por lo general no llamo Page.DataBind cuando se utiliza un ObjectDataSource.

Si ha declarado un ObjectDataSource en su página Web Form (aspx), entonces el método DataBind del control se llama inmediatamente después del evento y antes de Page.Load caso Load del control. Los eventos ObjectCreating y ObjectCreated pueden ser de ayuda para usted. Lo que sigue es una muestra de que los conjuntos de cadena de conexión del objeto de negocio.


<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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top