LoadingEventArgs.InputParameters 属性

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

命名空间:  Microsoft.Office.InfoPath
程序集:  Microsoft.Office.InfoPath(位于 Microsoft.Office.InfoPath.dll 中)

语法

声明
Public MustOverride ReadOnly Property InputParameters As IDictionary(Of String, String)
    Get
用法
Dim instance As LoadingEventArgs
Dim value As IDictionary(Of String, String)

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

属性值

类型:System.Collections.Generic.IDictionary<String, String>
包含输入参数的 IDictionary

异常

异常 条件
InvalidOperationException

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

备注

输入参数包含一个或多个以与号 (&) 字符分隔的名称/值对,它们是在通过命令行或批处理文件打开表单模板时使用 /InputParameters 命令行选项指定的。还可以在通过 URL 打开表单模板时使用查询参数来指定输入参数。

备注

尽管 IDictionary 通常是可读/写的,但 InfoPath 禁止调用向 IDictionary 写入数据的任何方法(例如 Add 或 Clear 方法)。向 InputParameters 属性返回的 IDictionary 写入数据的任何调用尝试都将引发 InvalidOperationException。

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

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

示例

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

命令行:

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

URL:

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

或者,也可以使用 XmlFormCollection 类的 NewFromFormTemplateWithInputParameters(String, String) 方法、ExternalApplication 接口的 NewFromSolutionWithInputParameters(String, String) 方法或 XDocumentsCollectionNewFromSolutionWithInputParameters(Object, Object) 方法,打开新的表单并从代码中传入输入参数。

备注

最后两种方法被设计为通过外部自动化代码来使用这些方法,而不能通过表单代码进行调用。

Loading 事件处理程序中使用 InputParameters 属性,在打开表单时将 Department 域值设置为"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 <> 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

另请参阅

引用

LoadingEventArgs 类

LoadingEventArgs 成员

Microsoft.Office.InfoPath 命名空间