首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

InfoPath 2010 表單編程:下拉框 Change 事件中查詢 SharePoint 列表數據完整實現

     編輯:關於.NET

表單設計

  • 兩個控件:mydropdown (下拉框)、field1 (文本框)
  • 下拉框綁定 SharePoint 列表項 ID 作為選項值

數據連接配置

  1. 功能區 數據 → 數據連接 → 添加
  2. 選擇 接收數據 → SharePoint 庫或列表
  3. 輸入站點 URL,選擇目標列表
  4. 勾選 Title 欄位 (後續查詢用)
  5. 命名連接為 MyDATASOURCE

瀏覽器表單選項

  • 啟用 始終獲取數據,確保下拉框值改變時自動查詢

VSTA 代碼實現

using Microsoft.Office.InfoPath;
using System;
using System.Xml;
using System.Xml.XPath;

namespace Getdatanamespace {
    public partial class FormCode {
        public void InternalStartup() {
            EventManager.XmlEvents["/my:myFields/my:mydropdown"].Changed 
                += new XmlChangedEventHandler(mydropdown_Changed);
        }

        public void mydropdown_Changed(object sender, XmlEventArgs e) {
            XPathNavigator form = MainDataSource.CreateNavigator();

            // 1. 設置查詢參數:將下拉框新值 (ID) 寫入查詢字段
            DataSources["MyDATASOURCE"].CreateNavigator()
                .SelectSingleNode("dfs:myFields/dfs:queryFields/q:SharePointListItem_RW/q:ID", NamespaceManager)
                .SetValue(e.NewValue);

            // 2. 執行查詢 (調用 Web Service)
            DataSources["MyDATASOURCE"].QueryConnection.Execute();

            // 3. 讀取返回數據:從數據字段提取 Title
            XPathNavigator resultNav = DataSources["MyDATASOURCE"].CreateNavigator();
            XPathNavigator field1 = form.SelectSingleNode("/my:myFields/my:field1", NamespaceManager);
            field1.SetValue(resultNav.SelectSingleNode(
                "/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW/d:Title", NamespaceManager).Value);
        }
    }
}

關鍵 XPath 路徑解析

階段XPath說明
查詢參數dfs:myFields/dfs:queryFields/q:SharePointListItem_RW/q:ID寫入下拉框選中的列表項 ID
結果讀取/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW/d:Title讀取返回項的 Title 欄位

發布到 SharePoint

  1. 文件 → 發布 → SharePoint 服務器 → 表單庫
  2. 完成後點擊「在瀏覽器中打開此表單」驗證

核心邏輯圖解

用戶選擇下拉框
      ↓
Changed 事件觸發
      ↓
將 NewValue 寫入 MyDATASOURCE 查詢字段 ID
      ↓
QueryConnection.Execute() → 呼叫 SharePoint Web Service
      ↓
從返回數據字段讀取 Title
      ↓
寫入主數據源 field1 顯示
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved