[InfoPath]如何在可在浏览器中打开的InfoPath表单中获取Url参数

在MSDN论坛上看到一位朋友问了这个问题,其实这是一个很普遍的需求,所以决定写这篇小Tip,希望可以帮到更多的朋友。

要在InfoPath中获取Url参数是非常简单的,首先让我们来创建一张可在浏览器中打开的表单。

image

在这个表单中加入了两个字段,并且用文本框控件予以展示。接着在工具菜单中选择编程,创建一个Loading事件。

image

在表单的Loading事件中通过LoadingEventArgs参数的InputParameters属性就可获得我们通过Url向其传递的参数了,下面是本例中的代码。

1 public void FormEvents_Loading(object sender, LoadingEventArgs e)
2
3 {
4
5 // 获取Url参数。
6  
7 string m_parameter1 = e.InputParameters["field1"];
8
9 string m_parameter2 = e.InputParameters["field2"];
10
11 XPathNavigator m_mainNod = this.MainDataSource.CreateNavigator();
12
13 XPathNavigator m_field1 = m_mainNod.SelectSingleNode("/my:myFields/my:field1", this.NamespaceManager);
14
15 XPathNavigator m_field2 = m_mainNod.SelectSingleNode("/my:myFields/my:field2", this.NamespaceManager);
16
17 m_field1.SetValue(m_parameter1);
18
19 m_field2.SetValue(m_parameter2);
20
21 }

最后来看下效果,通过下面这个Url打开表单。
http://myserver/_layouts/FormServer.aspx?XmlLocation=/GetUrlParameters/GetUrlParameter.xml&Source=http%3A%2F%2Fwei%2Dc679b2ee201%2FGetUrlParameters%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1&field1=ww3128&field2=FromUrl
image

好了,就是如此简单,在此还是想说InfoPath真的是非常不错的一个工具,尤其是当其与SharePoint结合在一起使用时,可以使我们的开发工作更加简单。

posted on 2011-01-27 22:00  致良知  阅读(1839)  评论(0编辑  收藏  举报

导航