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

InfoPath 2010 實戰:善用 ServerInfo 類別實現相對 URL 提交

     編輯:關於.NET

前言

在表單遷移不同伺服器或網站集合時,硬編碼的絕對 URL 會導致資料連線失效。InfoPath 2010 引入 ServerInfo 類別,讓我們能以相對 URL 方式提交資料,打包成 WSP 方案後即可無縫移植。本文透過完整範例示範如何實作。

初始環境設定

  1. 將表單模板發布為網站內容類型(沙箱方案),此為 InfoPath 2010 新功能。
  2. 建立表單庫(範例命名為 SubmittedTimeCards)。
  3. 開啟表單庫 → 程式庫設定 → 進階設定 → 啟用「允許管理內容類型」。
  4. 在「內容類型」區段選擇「從現有網站內容類型新增」,加入剛發布的類型並設為預設。

建立表單庫

程式庫設定

進階設定

新增內容類型

選擇內容類型

設為預設

核心程式碼實作

提交按鈕事件中,利用 ServerInfo.SharePointSiteUrl 取得目前網站集合相對路徑,搭配資料夾名稱構成提交目標:

public void FormEvents_Submit(object sender, SubmitEventArgs e)
{
    FileSubmitConnection fileSubmit = (FileSubmitConnection)this.DataConnections["SharePoint 庫提交"];
    fileSubmit.FolderUrl = this.ServerInfo.SharePointSiteUrl.ToString() + "SubmittedTimeCards/";
    fileSubmit.Execute();

    // 提交成功
    e.CancelableArgs.Cancel = false;
}

驗證成果

同一內容類型在不同子網站(如 Search 子網站)與根網站的表單庫中新建並提交,資料皆正確導向對應庫:

子網站新建表單

子網站提交成功

根網站提交成功

相對 URL 確保方案移植後無需修改程式碼,資料連線自動指向新伺服器,大幅降低維護成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved