ID do artigo: 312572 - Última revisão: sexta-feira, 14 de junho de 2002 - Revisão: 1.0

PROBLEMA: Você não pode navegar de para um formulário específico usando a sintaxe #FormName

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Quando você definir a propriedade NavigateURL do controle de link móvel como uma página para o qual navegar e a um formulário para exibir (como: page2.aspx#myForm ), a página navega para a segunda página, mas não navegar para o formulário que você especificou.

Causa

Esse comportamento ocorre porque o tempo de execução Microsoft Mobile Internet Toolkit não analisa o URL para um nome de formulário.

Resolução

Para resolver esse comportamento, use uma variável de QueryString e, em seguida, usar código do lado do servidor para executar a navegação:

Criar um formulário da Web móveis com um controle de link

O código a seguir contém um controle conexão móvel que é usado para navegar até a página page2.aspx. Observe que a propriedade NavigateURL do controle Especifica a página para o qual navegar. Esta propriedade também contém a variável de QueryString FormNavigate que você defina igual a FormNavigate .

Adicione o exemplo de código a seguir para uma página .aspx vazio em seu servidor Web e denomine-Page1.aspx:
<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
<%@ Page Language="vb" Inherits="System.Web.UI.MobileControls.MobilePage" %>
  <mobile:Form id="Form1" runat="server">
    <mobile:Link id="Link1" runat="server" NavigateURL="Page2.aspx?FormNavigate=Form2">
    Go To Form2
    </mobile:Link>
  </mobile:Form>
				

Criar um formulário da Web móvel

Crie um formulário da Web móvel para o qual navegar.

O código a seguir contém dois formulários da Web móvel para o qual um usuário pode navegar. O primeiro formulário é processado se uma QueryString não for fornecida quando esta página é solicitada. O segundo formulário é processado se uma QueryString chamado FormNavigate tiver um valor de Form2 .

Adicionar o código de exemplo a seguir a uma página .aspx vazia e nomeie-page2.aspx:
<%@ Page Language="vb" Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
  <mobile:Form id="Form1" runat="server">
    <mobile:Label id="Label1" runat="server">
    Form 1
    </mobile:Label>
  </mobile:Form>

  <mobile:Form id="Form2" runat="server">
    <mobile:Label id="Label2" runat="server">
    Form 2
    </mobile:Label>
  </mobile:Form>
				

Processar QueryString com o Microsoft Visual Basic .NET

O código a seguir usa o evento Page_Load para processar a variável de QueryString :

Para fazer isso, a variável de QueryString chamada FormNavigate é recuperada e, em seguida, armazenada em uma variável local chamada navigateToForm . Se navigateToForm não estiver vazia, Page.FindControl usando navigateToForm como o argumento é chamado. Uma referência para o formato correto é recebida, ele é armazenado em uma variável chamada myForm e, em seguida, a propriedade ActiveForm definida igual à myForm .

Adicione o código de exemplo a seguir para a página page2.aspx após o código que você adicionou na seção "Criar um formulário Web Mobile":
<Script runat="server">
  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    If Not Page.IsPostBack Then    
      ' Retrieve the QueryString Value  
      Dim navigateToForm As String
      navigateToForm = Request.QueryString("FormNavigate")

      ' Run navigation code if navigateToForm is not empty       
      If navigateToForm <> "" Then
        Dim myForm As Form

        ' Find and navigate to the form
        myForm = Page.FindControl(navigateToForm)
        ActiveForm = myForm
      End If
    End If
  End Sub
</Script>
				

Situação

Esse comportamento é por design.

Mais Informações

Passos para reproduzir o problema

Modificar o código de solução no Page1.aspx:

Alterar a seguinte linha
<mobile:Link id="Link1" runat="server" NavigateURL="Page2.aspx?FormNavigate=Form2">
para:
<mobile:Link id="Link1" runat="server" NavigateURL="Page2.aspx#Form2">
se você navegar para a página inicial e clique no link, verá que o Form1 é exibido em vez de Form2.

A informação contida neste artigo aplica-se a:
  • Microsoft Mobile Internet Toolkit 1.0
Palavras-chave: 
kbmt kbnavigation kbprb kbservercontrols KB312572 KbMtpt
Tradução automáticaTraduçã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: 312572  (http://support.microsoft.com/kb/312572/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.