[C#.NET][Infopath 2007] 如何寫入非字串資料格式 / How to write and clear non-string Format in form service
非字串的資料型態需要做一些處理才能正確的寫到Infopath欄位。
假設我在Infopath使用三個欄位,資料型態分別為date,double,integer
寫入這些資料時,必須要動用到xml,
我們觀察一下當欄位是空時,它們的資料格式是如何,設一下中斷點觀察OuterXml屬性
1.當欄位是空時資料長這樣
In Local
<my:date xmlns:my=\"http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-01-07T16:47:33\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"></my:date>
In Web
<my:date xsi:nil=\"true\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:my=\"http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-01-07T16:47:33\"></my:date>
我們可以發現在本機端與在網頁上所呈現的格式不太一樣。
2.接下來,我們在日期欄位隨便選擇一個日期,然後觀察OuterXml屬性。
當欄位資料格式正確且不是空時長這樣:(本機跟網頁都一樣)
<my:date xmlns:my=\"http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-01-07T16:47:33\">2010-01-09</my:date>
3.當瞭解空值與非空值的資料格式,我們就可以動手處理了。
4.我們在Write Value按鈕事件中加入以下,並觀察
5.我們在Clear Value按鈕事件中加入以下,並觀察
剛有提到本機端與Web端的空值,長得不太一樣,但是都是一樣的意思,程式碼兩者都適用。
執行結果
範例下載:
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET