程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 通過編程方式在InfoPath 2010表單的下拉框修改事件中獲取數據

通過編程方式在InfoPath 2010表單的下拉框修改事件中獲取數據

編輯:關於.NET

一個簡單的例子,包括一段簡短的代碼,在InfoPath 2010表單中下拉框的修 改事件裡從一個數據源獲取數據。

表單

樣例表單本身很簡單,只有兩個控件,如下圖所示:

在mydropdown下拉框屬性中,添加幾個值,為將要獲取的SharePoint列表中 已有的幾個列表項的ID。

另外,在浏覽器表單選項卡中,設置始終獲取數據。以便在下拉框值發生修 改時,自動獲取數據。

設置好表單布局後,點擊功能區“數據”選項卡中的“數據連接”,設置一 個數據源。

在彈出的“數據連接”對話框中,點擊“添加...”。打開數據連接向導對話 框。選擇“接收數據”。

下一步。選擇“SharePoint庫或列表”

下一步。輸入SharePoint網站地址。

下一步。選擇需要連接的列表。

下一步。選擇域。在下面的代碼中,我們會用到Title,所以這裡把它選中。

一路下一步,直到完成該向導。將我們的數據連接命名為 “MyDATASOURCE”。

選中下拉框控件,點擊功能區“開 發工具”選項卡下控件事件組中的“Changed事件”。

將打開VSTA集成開發環境。

代碼

下面的代碼中, InternalStartup()方法用於注冊下拉框的修改事件,mydropdown_Changed()方 法用於實際的從數據源獲取數據...

“MyDATASOURCE”是為了 獲取表單域field1的值,也就是來自SharePoint列表數據源(MyDATASOURCE)的 SharePoint列表項標題。

通過Web服務傳遞給數據源的參數是列表項ID, 由下拉框的當前值決定。

01 using  Microsoft.Office.InfoPath;
02 using System;
03 using System.Xml;
04 using  System.Xml.XPath;
05
06 namespace Getdatanamespace
07  {
08     public partial class FormCode
09      {
10
11         // 注意: 以下是 Microsoft  InfoPath 所需的過程。
12         // 可以使用  Microsoft InfoPath 對其進行修改。
13         public  void InternalStartup()
14         {
15              EventManager.XmlEvents ["/my:myFields/my:mydropdown"].Changed += new  XmlChangedEventHandler(mydropdown_Changed);
16          }
17  
18         public void  mydropdown_Changed(object sender, XmlEventArgs e)
19          {
20             // 在此處編寫代碼,用於更 改主數據源。
21             XPathNavigator form =  MainDataSource.CreateNavigator();
22
23              // 為Web服務調用和查詢連接准備參數
24              // 發送ID作為調用web服務的參數,用於訪問該數據源
25              DataSources["MyDATASOURCE"].CreateNavigator ().SelectSingleNode ("dfs:myFields/dfs:queryFields/q:SharePointListItem_RW/q:ID",Namespace Manager).SetValue(e.NewValue);
26              DataSources["MyDATASOURCE"].QueryConnection.Execute();
27
28              // 基於web服務的響應創建一個 navigator
29             XPathNavigator resultnav =  DataSources["MyDATASOURCE"].CreateNavigator();
30
31              // 用web服務響應中的數據設置字段的值
32              XPathNavigator Field1 = form.SelectSingleNode ("/my:myFields/my:field1", NamespaceManager);
33              Field1.SetValue(resultnav.SelectSingleNode ("/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW/d:Title",Namesp aceManager).Value);
34
35         }
36      }
37 }

運行

代碼編寫完成後,可以直接通過F5運行,將自動打開表單預覽界面。

測試無誤後,就可以發布到SharePoint表單庫中了。

點擊左上角的“文件”選項卡,打開後台視圖。選擇“發布”下的 “SharePoint服務器”

跟隨向導,一步步的進行就可以了。本例中,我們選擇發布到表單庫。

完成!點擊“在浏覽器中打開此表單”。

在SharePoint中運行的樣子:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved