COMO: Registar manualmente anterior para eventos específicos numa página utilizando o Visual Basic .NET .aspx

Traduções de Artigos Traduções de Artigos
Artigo: 328923 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo passo a passo descreve como configurar uma página .aspx para que o código HTML gerado irá registar o servidor em resposta a eventos específicos de um controlo. Para fins de exemplo, este artigo utiliza o controlo de TreeView de controlos Web do Internet Explorer.

A propriedade AutoPostBack

  • true . Quando o AutoPostBack é verdadeiro para um controlo, pode enviar o controlo novamente para o servidor em resposta a eventos que não pretende fazer com que uma nova colocação.

    Por exemplo, definir AutoPostBack como VERDADEIRO na TreeView faz com controlo que uma nova colocação em resposta a estes acontecimentos: onExpand; onCollapse; onCheck; e onSelectedIndexChange.
  • Falso . Definindo o AutoPostBack como FALSE, lançar fazer manualmente em resposta a um evento específico.

Criar o código

Para registar novamente manualmente resposta ao evento onSelectedIndexChange, siga estes passos.
  1. Criar uma aplicação Web e, em seguida, coloque o controlo TreeView numa página .aspx.
  2. Na página .aspx, defina a propriedade AutoPostBack do controlo TreeView como Falso .
  3. Na propriedade nós da TreeView , clique o botão de elipsis (...) colecção e, em seguida, adicionar alguns nós e subordinados à colecção de nós TreeView .
  4. Processar o evento onload para a página HTML e, em seguida, chamar a função initTree . Esta função do lado cliente vai ser gerada no evento Page_Load para a página .aspx.

    Na vista de HTML da página .aspx, adicionar uma rotina de tratamento para o evento onload à tag do body, da seguinte forma:
    <body onload="initTree()">
    					
  5. Adicione o código seguinte a partir desta função Page_Load a própria função Page_Load na classe de código para o ficheiro .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
    					

EXPLICAÇÃO o código

Como o código é desenvolvido

O código fornecido neste artigo foi desenvolvido utilizando o seguinte processo:
  • Uma página .aspx foi desenvolvida e AutoPostBack para o controlo TreeView foi definido como true .
  • A página .aspx foi visualizada no browser do Internet Explorer e a origem de foi guardada um ficheiro .HTML.
  • o AutoPostBack para o controlo TreeView foi definida para false e, em seguida, a página foi visualizada novamente no browser.
  • Comparar os dois ficheiros e anotar as diferenças ajudou a produzir o código fornecido neste artigo.

Mais informações sobre o código

  • O código da função Page_Load neste artigo compõe o seguinte código no browser:
    <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>
    						
    a função initTree é executada quando a página HTML é carregada no browser. A função initTree substitui o evento onSelectedIndexChange de TreeView1 para que o evento onSelectedIndexChange é adicionado à fila de eventos para a página e depois registar para o servidor.
  • A primeira linha da nova função onSelectedIndexChange ,
    if (event.oldTreeNodeIndex != event.newTreeNodeIndex) 
        this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex);
    						
    é retirado directamente da definição original para a função tal como definido no ficheiro HTML guardado.
  • Definição AutoPostBack para a TreeView para Verdadeiro compõe o seguinte código HTML:
    window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript');
    						
    uma vez que o mecanismo de reposição (neste caso, __doPostBack ) pode ser alterada no futuro, gerar a função no servidor utilizando o seguinte código:
    string strRef = Page.GetPostBackEventReference(TreeView1);
    					
    a referência de eventos de reposição, em seguida, é utilizada em Page_Load para gerar o evento PostBack no cliente.

Referências

Para obter informações adicionais, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
305140INFO: Plano de ASP.NET

319441COMO: Adicionar dinamicamente nós para um controlo do WebBrowser TreeView utilizando o Visual Basic .NET
Internet Explorer WebControls referência
http://msdn.microsoft.com/en-us/library/ms528669(VS.85).aspx

Propriedades

Artigo: 328923 - Última revisão: 25 de junho de 2003 - Revisão: 3.4
A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbmt kbhowtomaster kbservercontrols KB328923 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 328923

Submeter comentários

 

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