[C#.NET][Infopath 2007] 如何在 Form Service 使用全域變數 / How to Use Global Variable in Form Service
Form Service模式下不支援全域變數,必須要使用FormState來存取欄位變數
在上篇[InfoPath] 如何使用程式加入列至重複表格 / How to Add Row to a Repeat Table,我宣告了以下這幾隻變數,
不過當我要發佈到Web前,做了設計檢查,發現上面那些變數必須要使用FormState來存取,Form Service不支援直接存取全域變數,必須要使用欄位。
以下列出了幾個使用FormState範例
//字串,預設沒有回傳值(null)
private string f1
{
get { return (string)FormState["f1"]; }
set { FormState["f1"] = value; }
}
//整數,預設沒有回傳值(null)
private int counter
{
get { return (int)FormState["counter"]; }
set { FormState["counter"] = value; }
}
//布林,預設回傳false
private bool IsFalse
{
get
{
if (FormState["IsFalse"] != null)
{
return (bool)FormState["IsFalse"];
}
else
{
return false;
}
}
set
{
FormState["IsFalse"] = value;
}
}
//整數,預設回傳0
private int count
{
get
{
if (FormState["_count"] != null)
{
return (int)FormState["_count"];
}
else
{
return 0;
}
}
set
{
FormState["_count"] = value;
}
}
改變寫法後再檢查看看程式碼是否被Form Service支援,果然可以了
再發佈到Sharepoint看看,果然也是可以執行的啦~讚!!!
範例下載
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET