Artigo: 312572 - Última revisão: sexta-feira, 14 de Junho de 2002 - Revisão: 1.0

PROBLEMA:, Não é possível navegar para um formulário específico utilizando 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 | Reduzir tudo

Sintomas

Quando definir a propriedade NavigateURL do controlo móvel ligação a uma página à qual navegar e a um formulário para apresentar (como, por exemplo,: page2.aspx#myForm ), a página navega para a segunda página, mas não navegar para o formulário que especificou.

Causa

Este comportamento ocorre porque o runtime do Microsoft Mobile Internet Toolkit não analisa o URL para um nome de formulário.

Resolução

Para resolver este comportamento, utilize uma variável QueryString e, em seguida, utilizar código do lado do servidor para efectuar a navegação:

Criar um formulário Web móveis com um controlo de ligação

O seguinte código contém um controlo ligação móvel que é utilizado para navegar para a página Page2.aspx. Repare que a propriedade NavigateURL do controlo Especifica a página para onde navegar. Esta propriedade também contém a variável QueryString FormNavigate que definiu igual a FormNavigate .

Adicionar o seguinte exemplo de código a uma página .aspx vazio no servidor Web e atribua o nome 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 Web móvel

Crie um formulário Web móveis para onde navegar.

O código seguinte contém dois formulários da Web móvel para o qual um utilizador pode navegar. No primeiro formulário é apresentado se não for fornecido um QueryString quando esta página é pedida. No segundo formulário é apresentado se uma QueryString é designado por FormNavigate tiver um valor de Formulário2 .

Adicionar o seguinte exemplo de código a uma página .aspx vazia e, em seguida, o nome 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 seguinte utiliza o evento Page_Load para processar a variável QueryString :

Para efectuar este procedimento, a variável QueryString chamada FormNavigate é obtida e, em seguida, armazenada numa variável local denominada navigateToForm . Se navigateToForm não estiver vazio, chamada Page.FindControl navigateToForm a utilizar como o argumento. Uma referência para o formato correcto é recebida, é armazenado numa variável denominada myForm e, em seguida, a propriedade ActiveForm definição igual à myForm .

Adicione o seguinte exemplo de código à página Page2.aspx após o código que adicionou na secção "Criar um Mobile Web formulário":
<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>
				

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Passos para reproduzir o comportamento

Modificar o código de solução 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 navegar para a página inicial e clique na hiperligação, verá que o Form1 é apresentado em vez de Formulário2.

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 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: 312572  (http://support.microsoft.com/kb/312572/en-us/ )
Retired KB ArticleExclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.