LoadingEventArgs.InputParameters, propriété
Obtient une interface IDictionary contenant les /InputParameters spécifiés à l'aide de l'option de ligne de commande ou à l'aide des paramètres de requête dans une URL ou l'une des méthodes NewFromFormTemplateWithInputParameters.
Espace de noms : Microsoft.Office.InfoPath
Assembly : Microsoft.Office.InfoPath (dans Microsoft.Office.InfoPath.dll)
Syntaxe
'Déclaration
Public MustOverride ReadOnly Property InputParameters As IDictionary(Of String, String)
Get
'Utilisation
Dim instance As LoadingEventArgs
Dim value As IDictionary(Of String, String)
value = instance.InputParameters
public abstract IDictionary<string, string> InputParameters { get; }
Valeur de la propriété
Type : System.Collections.Generic.IDictionary<String, String>
Interface IDictionary contenant des paramètres d'entrée.
Exceptions
Exception | Condition |
---|---|
InvalidOperationException | Une méthode qui a tenté d'écrire dans l'objet IDictionary contenant des paramètres d'entrée a été appelée. |
Remarques
Les paramètres d'entrée représentent une ou plusieurs paires nom/valeur séparées par le caractère & (et commercial) et spécifiées lors de l'ouverture d'un modèle de formulaire à partir de la ligne de commande ou d'un fichier de commandes à l'aide de l'option de ligne de commande /InputParameters. Les paramètres d'entrée peuvent être également spécifiés à l'aide de paramètres de requête lors de l'ouverture d'un modèle de formulaire à partir d'une URL.
Notes
Même si un objet IDictionary est normalement en lecture/écriture, InfoPath interdit les appels aux méthodes qui écrivent dans l'objet IDictionary (par exemple les méthodes Add ou Clear). Toute tentative d'appel visant à écrire dans un objet IDictionary renvoyé par la propriété InputParameters génère une exception InvalidOperationException.
Ce membre est accessible uniquement par les formulaires qui s’exécutent dans le même domaine que le formulaire ouvert ou par les formulaires qui disposent d’autorisations valables pour plusieurs domaines.
Ce type ou ce membre est accessible à partir du code exécuté dans les formulaires ouverts dans Microsoft InfoPath Filler ou dans un navigateur Web.
Exemples
Dans l'exemple de code suivant, le modèle de formulaire InfoPath contenant le code de gestionnaire d'événements Loading est ouvert à partir de la ligne de commande ou à l'aide d'une URL avec la syntaxe suivante.
Ligne de commande :
infopath.exe "C:\User Forms\DeptReport.xsn" /InputParameters "Dept=Accounting&Acct=Contoso"
URL :
https://server/sites/team/forms/DeptReport.xsn?Dept=Accounting&Acct=Contoso
Autrement, vous pouvez ouvrir le nouveau formulaire et passer les paramètres d'entrée du code à l'aide de la méthode NewFromFormTemplateWithInputParameters(String, String) de la classe XmlFormCollection, de la méthode NewFromSolutionWithInputParameters(String, String) de l'interface ExternalApplication ou de la méthode NewFromSolutionWithInputParameters(Object, Object) de XDocumentsCollection.
Notes
Les deux dernières méthodes sont destinées à être utilisées à partir du code d'automation externe et ne peuvent pas être appelées à partir du code du formulaire.
La propriété InputParameters est utilisée à partir d'un gestionnaire d'événements Loading afin d'affecter au champ Department la valeur « Accounting » et au champ Account la valeur « Contoso » à l'ouverture du formulaire. Les paires nom/valeur qui spécifient les valeurs peuvent être passées comme paramètres d'entrée à l'aide de l'option de ligne de commande /InputParameters, du paramètre d'entrée d'URL ou de la méthode NewFromFormTemplateWithInputParameters(String, String).
public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
// Be sure that the InputParameter dictionary contains
// values before proceeding.
if (e.InputParameters.Count != 0)
{
string vDept = e.InputParameters["Dept"];
string vAcct = e.InputParameters["Acct"];
XPathNavigator myNav = CreateNavigator();
myNav.SelectSingleNode("/my:myFields/my:Department",
NamespaceManager).SetValue(vDept);
myNav.SelectSingleNode("/my:myFields/my:Account",
NamespaceManager).SetValue(vAcct);
}
}
Public Sub FormEvents_Loading(ByVal sender As Object, _
ByVal e As LoadingEventArgs)
' Be sure that the InputParameter dictionary contains
' values before proceeding.
If e.InputParameters.Count <> 0 Then
Dim vDept As String = e.InputParameters("Dept")
Dim vAcct As String = e.InputParameters("Acct")
Dim myNav As XPathNavigator = CreateNavigator()
myNav.SelectSingleNode("/my:myFields/my:Department", _
NamespaceManager).SetValue(vDept)
myNav.SelectSingleNode("/my:myFields/my:Account", _
NamespaceManager).SetValue(vAcct)
End If
End Sub