LoadingEventArgs.InputParameters 属性

定义

获取一个 , IDictionary 其中包含使用 /InputParameters 命令行选项、URL 中的查询参数或 NewFromFormTemplateWithInputParameters 方法之一指定的任何输入参数。

public:
 abstract property System::Collections::Generic::IDictionary<System::String ^, System::String ^> ^ InputParameters { System::Collections::Generic::IDictionary<System::String ^, System::String ^> ^ get(); };
public abstract System.Collections.Generic.IDictionary<string,string> InputParameters { get; }
member this.InputParameters : System.Collections.Generic.IDictionary<string, string>
Public MustOverride ReadOnly Property InputParameters As IDictionary(Of String, String)

属性值

一个 IDictionary 包含输入参数的 。

例外

调用了一种方法,该方法尝试向包含输入参数的 IDictionary 写入数据。

示例

在下面的代码示例中,使用以下语法从命令行或 URL 打开包含 Loading 事件处理程序代码的 InfoPath 表单模板。

命令行:

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

Url:

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

或者,可以使用 类的 方法、NewFromSolutionWithInputParameters(String, String)接口的 XmlFormCollection 方法ExternalApplicationNewFromSolutionWithInputParameters(Object, Object) 的 方法XDocumentsCollection打开新窗体并从代码NewFromFormTemplateWithInputParameters(String, String)中传入输入参数。

注意:最后两种方法设计用于外部自动化代码,不能从表单代码调用。

在打开窗体时,使用事件处理程序中的 InputParameters 属性 LoadingDepartment 字段值设置为“Accounting”,将 Account 字段值设置为“Contoso”。 可以使用 /InputParameters 命令行选项、URL 输入参数或 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 &lt;&gt; 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

注解

输入参数由一个或多个名称/值对组成,这些名称/值对由使用 /InputParameters 命令行选项从命令行或批处理文件打开表单模板时指定的和 (&) 字符分隔。 还可以在通过 URL 打开表单模板时使用查询参数来指定输入参数。

注意:虽然 IDictionary 通常是可读/写的,但 InfoPath 会阻止调用写入 IDictionary (的任何方法,例如 AddClear 方法) 。 向 InputParameters 属性返回的 IDictionary 写入数据的任何调用尝试都将引发 InvalidOperationException

此成员只能由与当前打开的表单在相同域中运行的表单访问,或者由已授予跨域权限的表单访问。

可以通过 Microsoft InfoPath Filler 或 Web 浏览器内打开的表单中运行的代码访问此类型或成员。

适用于