COMO: Fazer manualmente POST para eventos específicos em uma página usando Visual Basic .NET .aspx

Traduções deste artigo Traduções deste artigo
ID do artigo: 328923 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo a passo descreve como configurar uma página .aspx para que o código HTML que é gerado irá postar de volta para o servidor em resposta a eventos específicos de um controle. Para fins de exemplo, este artigo usa o controle TreeView de controles da Web do Internet Explorer.

A propriedade AutoPostBack

  • true . Quando AutoPostBack é verdadeiro para um controle, o controle pode postar volta para o servidor em resposta a eventos que você não quiser fazer com que um postback.

    Por exemplo, a definição AutoPostBack como True em TreeView controle causa um postback em resposta a esses eventos: onExpand; onCollapse; onCheck; e onSelectedIndexChange.
  • false . Definindo AutoPostBack como False, você lançar fazer manualmente em resposta a um evento específico.

Criar o código

Para lançar fazer manualmente em resposta ao evento onSelectedIndexChange, execute essas etapas.
  1. Crie um aplicativo da Web e colocar o controle TreeView em uma página .aspx.
  2. Na página .aspx, defina a propriedade AutoPostBack do controle TreeView para False .
  3. Na propriedade nós de TreeView , clique em botão coleção elipsis (...) e adicione alguns nós e filhos para a coleção de nós de TreeView .
  4. Manipular o evento onload para a página HTML e, em seguida, chamar a função initTree . Esta função do lado do cliente será gerada no evento Page_Load para a página .aspx.

    No modo de exibição HTML da página .aspx, adicione um manipulador para o evento onload à marca body da seguinte maneira:
    <body onload="initTree()">
    					
  5. Adicione o seguinte código dessa função Page_Load para sua própria função Page_Load na classe code-behind para o arquivo .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 sobre o código

Como o código é desenvolvido

O código fornecido neste artigo foi desenvolvido usando o seguinte processo:
  • Uma página .aspx foi desenvolvida e AutoPostBack do controle TreeView foi definido como True .
  • A página .aspx foi exibida no navegador Internet Explorer e a fonte foi salva um arquivo .HTML.
  • AutoPostBack do controle TreeView foi definida como False , e em seguida, a página foi exibida novamente no navegador.
  • Comparando os dois arquivos e observar as diferenças ajudaram a produzir o código fornecido neste artigo.

Para mais informações sobre o código

  • O código da função Page_Load neste artigo processa o código a seguir no navegador:
    <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 é executado quando a página HTML é carregada no navegador. A função initTree substitui o evento onSelectedIndexChange do TreeView1 para que o evento onSelectedIndexChange é adicionado à fila de eventos para a página e, em seguida, é remetido de volta para o servidor.
  • A primeira linha da nova função onSelectedIndexChange ,
    if (event.oldTreeNodeIndex != event.newTreeNodeIndex) 
        this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex);
    						
    é obtido diretamente da definição do original para a função conforme definido no arquivo .HTML salvo.
  • Configuração AutoPostBack para TreeView como True processa o código a seguir em HTML:
    window.setTimeout('__doPostBack(\'TreeView1\',\'\')', 0, 'JavaScript');
    						
    como o mecanismo de postback (no caso, __doPostBack ) pode ser alterada no futuro, gerar a função no servidor usando o código a seguir:
    string strRef = Page.GetPostBackEventReference(TreeView1);
    					
    a referência de evento de postback é usada, em seguida, em Page_Load para gerar o evento de PostBack no cliente.

Referências

Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
305140INFO: Guia de ASP.NET

319441COMO: Dinamicamente adicionar nós a um controle do WebBrowser TreeView usando o Visual Basic .NET
Internet Explorer WebControls referência
http://msdn.microsoft.com/en-us/library/ms528669(VS.85).aspx

Propriedades

ID do artigo: 328923 - Última revisão: quarta-feira, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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