LoadingEventArgs.InputParameters 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取一个 , 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 方法ExternalApplication或 NewFromSolutionWithInputParameters(Object, Object) 的 方法XDocumentsCollection打开新窗体并从代码NewFromFormTemplateWithInputParameters(String, String)中传入输入参数。
注意:最后两种方法设计用于外部自动化代码,不能从表单代码调用。
在打开窗体时,使用事件处理程序中的 InputParameters 属性 Loading 将 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
注解
输入参数由一个或多个名称/值对组成,这些名称/值对由使用 /InputParameters 命令行选项从命令行或批处理文件打开表单模板时指定的和 (&) 字符分隔。 还可以在通过 URL 打开表单模板时使用查询参数来指定输入参数。
注意:虽然 IDictionary 通常是可读/写的,但 InfoPath 会阻止调用写入 IDictionary (的任何方法,例如 Add 或 Clear 方法) 。 向 InputParameters 属性返回的 IDictionary 写入数据的任何调用尝试都将引发 InvalidOperationException。
此成员只能由与当前打开的表单在相同域中运行的表单访问,或者由已授予跨域权限的表单访问。
可以通过 Microsoft InfoPath Filler 或 Web 浏览器内打开的表单中运行的代码访问此类型或成员。