【功能說明】
用途:使用於Web網頁中,繼承自FormView元件,此元件的主要功能是顯示資料源中單筆的記錄。由開發者自由定義版面與使用那些元件來與欄位配合,使用FormView的最大好處就是能與WebDataSource進行資料綁定(Binding),可以讓元件與WebDataSource進行雙向互動,也就是除了可以顯示資料欄位外,亦可進行資料的編輯。另一方面,WebFormView多了LayOutColNum來設定內建式Tabel的Column數,如設為2代表欄位會排成左右兩欄的方式呈現(會有Table隔開)。
【元件屬性】
(ID)(元件名稱)(string)
用於識別該組件。
DataSourceID(資料源)(string)
對應到WebFormView的資料源代號,就是指WebDataSource。
DefaultMode(編輯模式)(enum)
設定WebFormView的編輯模式,有三種模式(ReadOnly,Edit,Insert),分別代表顯示,更改編輯,新增編輯的模式,預設為ReadOnly模式。改變本屬性可以直接影響到WebFormView的版面上的各元件狀態。
Caption(抬頭)(string)
元件上面的抬頭文字內容。
LayOutColNum(左右列數)(int32)
用來設定WebFormView中顯示資料欄位的左右列數,系統會自動在FormView內建立Table格線於頁面中,以方便設計者處理欄位的位置的對齊,但必須注意,此屬性必須在未設定DataSourceID之前就要事先設定好,也就是當FormView還沒有欄位前,否則無效。
Fields(預設欄位明細)(collection)
此是專門配合WebDefault元件所使用。當需要對WebFormView進行Insert功能時,必須要另外設定此屬性才能與WebDefault對應上,這是因為在FormView中系統不知道那一個TextBox元件是對應到那一個WebDefault的那一個欄位,因此透過此Fields來對應。設定是以FormView內的ControlID去對應到WebDefault內的FieldName欄位名稱即可。
RowStyle(資料頁面型態)
用來設定資料顯示時其頁面上的前景背景顏色,字型,自動換列,邊框顏色型態大小等等。
EditRowStyle(編輯頁面型態)
用來設定更改編輯時其頁面上的前景背景顏色,字型,自動換列,邊框顏色型態大小等等。
InsertRowStyle(新增頁面型態)
用來設定新增資料時的前景背景顏色,字型,自動換列,邊框顏色型態大小等等。
EmptyDataRowStyle(空白資料型態)
用來設定空白資料時其頁面上的前景背景顏色,字型,自動換列,邊框顏色型態大小等等。
PagerStyle(分頁頁面型態)
用來設定表尾分頁的頁面上的前景背景顏色,字型,自動換列,邊框顏色型態大小等等。
EmptyDataText(空白資料文字)(string)
用來設定空白資料時所要顯示的文字內容。
【其它說明】
1. 為了讓WebFormView的Fields設定方便,可以在設定完WebDefault時,以FormView的快捷鈕(右上三角型)的"Copy Default
Fields",幫你自動從WebDefault中的Fields名稱Copy到WebFormView.Fields當中。
2. 為了讓WebFormView可以支援多國語言的架構,使用"Refresh
Schema"可以自動產生"Label"的欄位抬頭,之前
3. 在設計模式下,WebFormView右鍵會有一個"Export To MultiLanguage"功能,會將WebFormView的ItemTemplate上所有"Label"輸出到同頁面的WebMultiLanguage上。
【 範例 】
使用 FormView 的 DataBound 事件 來完成 用程式控制 WebFormView 自行 帶值的方法 ,如 下 :
protected void
wfvMaster_DataBound(object sender , EventArgs e)
{
if ( wfvMaster.CurrentMode== FormViewMode.Insert) // Insert 才做
{
WebRefValctrl = ( WebRefVal)
wfvMaster.FindControl("WebRefVal1"); // 假設名稱為 WebRefVal1
ctrl.BindingValue= "001"; // 設為 001
WebDateTimePickerctrl1 = (
WebDateTimePicker) wfvMaster.FindControl("WebDateTimePicker1");
ctrl1.Text = System.DateTime.Now.ToShortDateString();// 如果 DateTime 型態
ctrl1.DateString = System.DateTime.Now.ToString(" yyyyMMdd");
// 如果為 VarChar (8) 型態 .
}
}