Você está offline; aguardando reconexão

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

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
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

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 328923 - Última Revisão: 06/25/2003 17:06:43 - Revisão: 3.4

Microsoft ASP.NET 1.0, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft ASP.NET 1.1, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbmt kbhowtomaster kbservercontrols KB328923 KbMtpt
Comentários