Share via


LoadingEventArgs.InputParameters-Eigenschaft

Ruft ein IDictionary-Objekt ab, das alle Eingabeparameter enthält, die mithilfe der /InputParameters-Befehlszeilenoption, mithilfe von Abfrageparametern in einer URL oder mithilfe einer der NewFromFormTemplateWithInputParameters-Methoden angegeben wurden.

Namespace:  Microsoft.Office.InfoPath
Assembly:  Microsoft.Office.InfoPath (in Microsoft.Office.InfoPath.dll)

Syntax

'Declaration
Public MustOverride ReadOnly Property InputParameters As IDictionary(Of String, String)
    Get
'Usage
Dim instance As LoadingEventArgs
Dim value As IDictionary(Of String, String)

value = instance.InputParameters
public abstract IDictionary<string, string> InputParameters { get; }

Eigenschaftswert

Typ: System.Collections.Generic.IDictionary<String, String>
Ein IDictionary-Objekt, das Eingabeparameter enthält.

Ausnahmen

Ausnahme Bedingung
InvalidOperationException

Es wurde eine Methode aufgerufen, durch die versucht wurde, in das IDictionary-Objekt zu schreiben, das Eingabeparameter enthält.

Hinweise

Eingabeparameter bestehen aus mindestens einem durch das kaufmännische Und-Zeichen (&) getrennten Name/Wert-Paar, das angegeben wird, wenn eine Formularvorlage über die Befehlszeile oder über eine Batchdatei mithilfe der /InputParameters-Befehlszeilenoption geöffnet wird. Eingabeparameter können auch mithilfe von Abfrageparametern angegeben werden, wenn eine Formularvorlage über eine URL geöffnet wird.

Hinweis

Während IDictionary in der Regel über Lese-/Schreibzugriff verfügt, werden von InfoPath Aufrufe sämtlicher Methoden vermieden, die einen Schreibvorgang auf IDictionary ausführen (z. B. die Methoden Add oder Clear). Bei sämtlichen Aufrufversuchen, die Schreibvorgänge auf IDictionary (Rückgabe erfolgt über die InputParameters-Eigenschaft) ausführen, wird InvalidOperationException ausgelöst.

Auf dieses Mitglied kann nur mithilfe von Formularen zugegriffen werden, die in der gleichen Domäne wie das derzeit geöffnete Formular ausgeführt werden oder denen domänenübergreifende Berechtigungen zugewiesen wurden.

Auf diesen Typ oder dieses Mitglied kann über Code zugegriffen werden, der in Formularen ausgeführt wird, die in Microsoft InfoPath Filler oder in einem Webbrowser geöffnet wurden.

Beispiele

Im folgenden Codebeispiel wird die InfoPath-Formularvorlage, die den Loading-Ereignishandlercode enthält, mithilfe der folgenden Syntax über die Befehlszeile oder über eine URL geöffnet.

Befehlszeile:

infopath.exe "C:\User Forms\DeptReport.xsn" /InputParameters "Dept=Accounting&Acct=Contoso"

URL:

https://server/sites/team/forms/DeptReport.xsn?Dept=Accounting&Acct=Contoso

Alternativ können Sie das neue Formular öffnen und Eingabeparameter aus Code übergeben, indem Sie die NewFromFormTemplateWithInputParameters(String, String)-Methode der XmlFormCollection-Klasse, die NewFromSolutionWithInputParameters(String, String)-Methode der ExternalApplication-Schnittstelle oder die NewFromSolutionWithInputParameters(Object, Object)-Methode von XDocumentsCollection verwenden.

Hinweis

Die letzten beiden Methoden sind für die Verwendung über externen Automatisierungscode gedacht und können nicht über Formularcode aufgerufen werden.

Die InputParameters-Eigenschaft wird über einen Loading-Ereignishandler verwendet, um beim Öffnen des Formulars den Department-Feldwert auf Accounting und den Account-Feldwert auf Contoso festzulegen. Die Name/Wert-Paare zum Angeben der Werte können als Eingabeparameter mithilfe der /InputParameters-Befehlszeilenoption, eines URL-Eingabeparameters oder der NewFromFormTemplateWithInputParameters(String, String)-Methode übergeben werden.

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

Siehe auch

Referenz

LoadingEventArgs Klasse

LoadingEventArgs-Member

Microsoft.Office.InfoPath-Namespace