Cómo: Registrar manualmente en espera para sucesos específicos en una página utilizando Visual Basic .NET .aspx

Seleccione idioma Seleccione idioma
Id. de artículo: 328923 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo paso a paso describe cómo configurar una página .aspx para que el código HTML que se genera se exponer en el servidor en respuesta a eventos específicos de un control. Con fines de ejemplo, en este artículo utiliza el control TreeView de controles Web de Internet Explorer.

La propiedad AutoPostBack

  • es true . Cuando AutoPostBack es True para un control, puede exponer el control nuevo en el servidor en respuesta a eventos que no desea causar una devolución de datos.

    Por ejemplo, al establecer AutoPostBack en True en TreeView control, una devolución de datos en respuesta a estos eventos: onExpand; onCollapse; inicia; y onSelectedIndexChange.
  • es false . Estableciendo AutoPostBack en False, registrar volver manualmente respuesta a un evento específico.

Crear el código

Para registrar protegerlo manualmente respuesta al evento onSelectedIndexChange, siga estos pasos.
  1. Crear una aplicación Web y coloque el control TreeView en una página. aspx.
  2. En la página .aspx, establezca la propiedad AutoPostBack del control TreeView en false .
  3. En la propiedad de nodos de TreeView , haga clic en el botón de puntos suspensivos (...) de la colección y, a continuación, agregar algunos nodos y elementos secundarios a la colección de nodos de TreeView .
  4. Controlar el evento onload de la página HTML y llame a la función initTree . Esta función del lado cliente se generará en el evento Page_Load para la página .aspx.

    En la vista HTML de la página .aspx, agregar un controlador para el evento onload a la etiqueta body como sigue:
    <body onload="initTree()">
    					
  5. Agregue el código siguiente de esta función Page_Load a su propia función Page_Load de la clase de código subyacente para el archivo .aspx.
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim strTreeName As String = "TreeView1"
        Dim strRef As String = Page.GetPostBackEventReference(TreeView1)
        Dim strScript As String = "<script language=""JavaScript""> " & vbCrLf & _
            "<!-- " & vbCrLf & _
            "	function initTree() { " & vbCrLf & _
            "		" & strTreeName & ".onSelectedIndexChange = function() { " & vbCrLf & _
            "			if (event.oldTreeNodeIndex != event.newTreeNodeIndex) " & vbCrLf & _
            "				this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex & ',' & event.newTreeNodeIndex); " & vbCrLf & _
            "			window.setTimeout('" & strRef.Replace("'", "\'") & "', 0, 'JavaScript'); " & vbCrLf & _
            "		} " & vbCrLf & _
            "	} " & vbCrLf & _
            "// --> " & vbCrLf & _
            "</script>"
    
        Page.RegisterClientScriptBlock("InitTree", strScript)
    End Sub
    					

Explicación del código

Cómo está programado el código

El código proporcionado anteriormente en este artículo se desarrolló mediante el proceso siguiente:
  • Se ha desarrollado una página .aspx y AutoPostBack para el control TreeView se estableció en true .
  • Ha visto la página .aspx en el Explorador de Internet Explorer y el origen se guarda en un archivo .HTML.
  • AutoPostBack para el control TreeView se estableció en false y, a continuación, ha visto la página nuevo en el explorador.
  • Comparar dos archivos y observar las diferencias ayudó a producir el código proporcionado anteriormente en este artículo.

Más información sobre el código

  • El código de la función Page_Load en este artículo presenta el siguiente código en el explorador:
    <script language="JavaScript">
    <!-- 
        function initTree() { 
            TreeView1.onSelectedIndexChange = function() { 
                if (event.oldTreeNodeIndex != event.newTreeNodeIndex) 
                    this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex & ',' & event.newTreeNodeIndex); 
    
                window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript'); 
            } 
        } 
    // -->
    </script>
    						
    la función initTree se ejecuta cuando se carga la página HTML en el explorador. La función initTree reemplaza el evento onSelectedIndexChange de TreeView1 de modo que el evento onSelectedIndexChange se agrega a la cola de sucesos para la página y, a continuación, se registra en el servidor.
  • La primera línea de la nueva función onSelectedIndexChange ,
    if (event.oldTreeNodeIndex != event.newTreeNodeIndex) 
        this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex);
    						
    procede directamente de la definición original de la función como se define en el archivo .HTML guardado.
  • Valor de AutoPostBack para TreeView en true representa el código siguiente en HTML:
    window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript');
    						
    como el mecanismo de devolución de datos (en este caso, __doPostBack ) puede cambiar en el futuro, generar la función en el servidor mediante el siguiente código:
    string strRef = Page.GetPostBackEventReference(TreeView1);
    					
    la referencia de evento de devolución de datos, a continuación, se utiliza en Page_Load para generar el evento PostBack en el cliente.

Referencias

Para obtener información adicional, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
305140INFORMACIÓN: Guía básica de ASP.NET

319441Cómo: Agregar dinámicamente nodos a un control de WebBrowser de TreeView con Visual Basic .NET
Referencia de Internet Explorer WebControls
http://msdn.microsoft.com/en-us/library/ms528669(VS.85).aspx

Propiedades

Id. de artículo: 328923 - Última revisión: miércoles, 25 de junio de 2003 - Versión: 3.4
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
Palabras clave: 
kbmt kbhowtomaster kbservercontrols KB328923 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 328923

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com