Como executar código Jscript de um navegador InfoPath 2007 - habilitado modelo forma

Traduções deste artigo Traduções deste artigo
ID do artigo: 555990 - Exibir os produtos aos quais esse artigo se aplica.
Author: S.Y.M. Wong-A-Ton MVP
Expandir tudo | Recolher tudo

Sumário

Aprenda como executar código Jscript do navegador do InfoPath - habilitado forma modelos que são hospedados em personalizado ASP.NET páginas.

Abstrato

Este artigo explica como executar código Jscript do navegador do InfoPath - habilitado forma modelos que são hospedados em personalizado ASP.NET páginas. Ele pressupõe que você são familiarizado com o design e editoração forma modelos, o InfoPath InfoPath Forms Services, XmlFormView controle, ASP.NET, JScript, e codificar.NET para o InfoPath modelos forma escrita.

Introdução

Enquanto você não pode publicar um modelo forma que contém script para um servidor execução os Serviços de Formulários do InfoPath, você pode usar o controle XmlFormView para hospedar um navegador - habilitado modelo forma em um personalizado página ASP.NET e indiretamente executar código Jscript da forma o modelo. Para fazer isso, você deve:
  1. Em um manipulador de eventos do modelo forma, usar o NotifyHost método.aspx http://msdn2.microsoft.com/en-US/Library/Microsoft.Office.InfoPath.xmlform.notifyhost (VS.80)] [da classe XmlForm .
  2. Na página ASP.NET, gancho backup o NotifyHost evento [http://msdn2.microsoft.com/en-US/Library/Microsoft.Office.InfoPath.server.Controls.xmlformview.notifyhost.aspx] do controle para um manipulador de eventos XmlFormView .
  3. Registrar e executar código Jscript de dentro o manipulador de eventos no página ASP.NET.
Para obter mais informações sobre os tópicos abordados neste artigo, consulte Hospedando o formulário do InfoPath 2007 edição ambiente em um Web Form personalizado [http://msdn2.microsoft.com/en-US/Library/aa701078.aspx].

Etapa 1: usando o método NotifyHost para enviar notificações

Você pode usar o método NotifyHost da classe XmlForm para enviar notificações para a ambiente de hospedagem de um modelo forma. Execute a seguinte etapas para adicionar um controle de botão e seu manipulador de eventos para um modelo forma, e chamar o método NotifyHost :
  1. Abrir o navegador do InfoPath - compatível modelo forma no modo de design.
  2. O painel tarefa, clique em Controles .
  3. Adicionar um controle de botão a forma o modelo.
  4. Clique com o botão direito do mouse o controle de botão e selecione Propriedades do Botão .
  5. Sobre a caixa diálogo Button Properties clique, Editar Código de formulário para adicionar um manipulador de eventos Clicked para a codificar lógica corporativa templateÆs forma.
  6. Codificar para o controlÆs manipulador de eventos Clicked Botão adicionar o seguinte:
C#
NotifyHost("Message from InfoPath");

Visual Basic
NotifyHost("Message from InfoPath")

No exemplo anterior, a forma irá enviar a notificação, ôMessage de InfoPathö , para o personalizado página ASP.NET quando você clique o botão. Embora a notificação deve ser um seqüência de caracteres, não precisa ser estático. Para exemplo, você pode recuperar o valor de um campo na forma e enviar esse valor como uma notificação. Você também pode transmitir uma seqüência vazia para o método NotifyHost apenas para alerta a página ASP.NET que um evento ocorreu na forma.
 
Observação:
Pois o modelo forma contém código gerenciado, você terá que executar um Administrator-approved implantação para publicar o modelo forma para um servidor execução InfoPath Forms Services.

Etapa 2: Hooking para cima o evento NotifyHost para um manipulador de eventos

O método NotifyHost aumenta o evento NotifyHost do controle XmlFormView . Você deve gancho Backup e implementar um manipulador de eventos para o evento NotifyHost antes o página ASP.NET pode receber notificações da forma.
 
No seguinte exemplo XmlFormView um controle nomeado XmlFormView1 tenha sido adicionado a um personalizado página ASP.NET. O controle hospeda um navegador - habilitado nomeado modelo forma MyFormTemplate.xsn , que foi publicado por um administrador para a biblioteca modelo forma, FormServerTemplates , de uma coleção site. nomedoservidor é o nome do servidor que está execução InfoPath Forms Services.
 
Para gancho backup o evento NotifyHost de XmlFormView1 para um nomeado manipulador de eventos XmlFormView1_NotifyHost , você deve adicionar OnNotifyHost = " XmlFormView1_NotifyHost " para a marca de XmlFormView1 controle. O seguinte codificar mostra como fazer isso:
 
HTML
<cc1:XmlFormView ID="XmlFormView1" runat="server"               
    XsnLocation="http://ServerName/FormServerTemplates/MyFormTemplate.xsn"
    OnNotifyHost = XmlFormView1_NotifyHost " "
/>

Depois de gancho backup o evento, você deve implementar o manipulador de eventos XmlFormView1_NotifyHost no code-behind do página ASP.NET da seguinte maneira:
 
C#
protected void XmlFormView1_NotifyHost(object sender, NotifyHostEventArgs e)
{
    ...
}

Visual Basic
Protected Sub XmlFormView1_NotifyHost(ByVal sender As Object, _ 
                                      ByVal e As NotifyHostEventArgs)
    ...

End Sub

O argumento NotifyHostEventArgs do manipulador de eventos tem uma propriedade nomeado de notificação . Esta propriedade contém a notificação que a forma do InfoPath envia quando você usa o método NotifyHost . Codificar recupera e armazena a notificação em uma variável seqüência de caracteres o seguinte:
 
C#
string message = e.Notification;

Visual Basic
Dim message As String = e.Notification

Observação:
Para usar a classe NotifyHostEventArgs , você deve importação espaço para nome Microsoft.Office.InfoPath.Server.Controls .

Etapa 3: em execução JScript código do manipulador de eventos NotifyHost

Após você ter conectado o evento NotifyHost para um manipulador de eventos, você pode escrever codificar no manipulador de eventos para registrar e executar código Jscript.
 
Exemplo 1: exibindo uma caixa mensagem
O seguinte codificar exibe uma caixa mensagem com a mensagem notificação que foi enviada pela forma do InfoPath.
 
C#
protected void XmlFormView1_NotifyHost(object sender, NotifyHostEventArgs e)
{
    string jsCode = String.Format("alert('{0}');", e.Notification);
    ClientScript.RegisterStartupScript(typeof(string), "AlertScript",                  
                                       jsCode, true);
}

Visual Basic
Protected Sub XmlFormView1_NotifyHost(ByVal sender As Object, _
                                      ByVal e As NotifyHostEventArgs)


    Dim jsCode As String = String.Format("alert('{0}');", e.Notification)
    ClientScript.RegisterStartupScript(GetType(String), "AlertScript", _
                                       jsCode, True)

End Sub

 
Exemplo 2: Abrir um novo janela do navegador
O seguinte codificar abre um novo janela do navegador e navega para uma URL especificado. Aqui, o método NotifyHost só é usado para alerta o página ASP.NET que um evento ocorreu na forma do InfoPath, portanto, a mensagem notificação que foi enviada é ignorada.
 
C#
protected void XmlFormView1_NotifyHost(object sender, NotifyHostEventArgs e)
{
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("window.open(");
    sb.Append("'http://support.microsoft.com/default.aspx', ");
    sb.Append("'mywindow', 'width=640,height=480'");
    sb.Append(");");
 
    ClientScript.RegisterStartupScript(typeof(string), "NewWinScript",                  
                                       sb.ToString(), true);

}

Visual Basic
Protected Sub XmlFormView1_NotifyHost(ByVal sender As Object, _
                                      ByVal e As NotifyHostEventArgs)
 
    Dim sb As System.Text.StringBuilder = New System.Text.StringBuilder()
    sb.Append("window.open(")
    sb.Append("'http://support.microsoft.com/default.aspx', ")
    sb.Append("'mywindow', 'width=640,height=480'")
    sb.Append(");")
 
    ClientScript.RegisterStartupScript(GetType(String), "NewWinScript", _
                                       sb.ToString(), True)


End Sub

Conclusão

Você não pode publicar um modelo forma que contém script para um servidor execução InfoPath Forms Services. Entretanto, você pode hospedar um navegador - habilitado modelo forma em um controle XmlFormView em um personalizado página ASP.NET e use o método NotifyHost da classe XmlForm para enviar notificações da forma do InfoPath para hospedar seu. Isso gera um evento NotifyHost no controle XmlFormView , que você pode clique capturar e identificador em um manipulador de eventos do página ASP.NET. Finalmente, você pode registrar e executar código Jscript de dentro do manipulador de eventos.

Propriedades

ID do artigo: 555990 - Última revisão: sexta-feira, 21 de setembro de 2007 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft Office InfoPath 2007
  • Microsoft Office Forms Server 2007
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). Caso tenha encontrado erros neste artigo e queira colaborar no processo de aperfeiçoamento desta ferramenta, por favor preencha o formulário existente na parte inferior desta página. Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 555990
AVISO DE ISENÇÃO DE CONTEÚDO DAS SOLUÇÕES DA COMUNIDADE
A MICROSOFT CORPORATION E/OU SEUS RESPECTIVOS FORNECEDORES NÃO FAZEM REPRESENTAÇÕES SOBRE A ADEQUAÇÃO, A CONFIABILIDADE OU A PRECISÃO DAS INFORMAÇÕES E DOS ELEMENTOS GRÁFICOS RELACIONADOS AQUI CONTIDOS. TAIS INFORMAÇÕES E ELEMENTOS GRÁFICOS SÃO FORNECIDOS "COMO ESTÃO", SEM GARANTIA DE QUALQUER TIPO. A MICROSOFT E/OU SEUS RESPECTIVOS FORNECEDORES ISENTAM-SE, POR MEIO DESTE, DE QUAISQUER GARANTIAS E CONDIÇÕES RELATIVAS A ESSAS INFORMAÇÕES E ESSES ELEMENTOS GRÁFICOS RELACIONADOS, INCLUINDO TODAS AS GARANTIAS E CONDIÇÕES IMPLÍCITAS DE COMERCIABILIDADE, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO, HABILIDADE, PROPRIEDADE E NÃO-VIOLAÇÃO. ESPECIFICAMENTE, VOCÊ CONCORDA QUE, EM NENHUMA HIPÓTESE, A MICROSOFT E/OU SEUS FORNECEDORES SERÃO RESPONSABILIZADOS POR QUAISQUER DANOS DIRETOS, INDIRETOS, PUNITIVOS, INCIDENTAIS, ESPECIAIS, CONSEQÜENCIAIS OU QUAISQUER OUTROS DANOS, INCLUINDO, SEM LIMITAÇÃO, DANOS POR PERDA DE USO, DADOS OU LUCROS RESULTANTES DE OU RELACIONADOS, DE QUALQUER OUTRA FORMA, AO USO OU À INCAPACIDADE DE USO DAS INFORMAÇÕES E DOS ELEMENTOS GRÁFICOS AQUI CONTIDOS, SEJA COM BASE EM CONTRATO, ATO ILÍCITO, NEGLIGÊNCIA, RESPONSABILIDADE EXPRESSA OU OUTROS, MESMO QUE A MICROSOFT OU QUALQUER UM DE SEUS FORNECEDORES TENHA SIDO AVISADA SOBRE A POSSIBILIDADE DE DANOS.

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