【功能說明】
用途:使用於Web網頁中,此元件的主要功能是自動接受並傳遞兩個網頁中的資料,專門用於WebGridView來連結到另一個網頁上進行Update和Insert與查看功能,在另一個網頁中就是用本元件來接收原網頁所傳入的鍵值與設定來進行另一頁面的新增更改與查看功能,最後也必須將更改或新增的資料傳回原網頁。WebTransLate另一重要用途就是可以配何WebRefButton(自定連結按鈕),讓WebRefButton可以另外連結一個網頁,並以WebTransLate來定義傳回值,傳回另一頁面的資料回WebRefButton的原網頁。
【元件屬性】
(ID)(名稱)(string)
元件名稱,用於識別該元件。
DataSourceID(資料源)(string)
所要對應的WebDataSource,系統會以傳過來的鍵值對指定的DataSourceID進行查詢動作(如過為新增動作則會自動清空)。
ShowDataStyle(資料類型)(string)
設置與其連結的資料元件類型,目前支援WebFormView,WebDetailsView,WebGridView,ListBox等四種。但WebGridView一般是配合ReferanceOnly=True時使用,用於傳回欄位值。
BindingObject(連結元件)(string)
設置與之綁定連結的資料元件名稱,用來控制與其元件的相互互動關係。
ReferanceOnly(僅傳回參考值)(bool)
用來設定是否配合WebRefButtons傳回部份欄位參考值,True代表按OK時會傳回RefReturnFiels給原網頁,False代表按OK會回存此Insert/Update的資料到後端,並回原網頁更新資料。
RefReturnFields(傳回欄位名稱)(collection)
用來設定當ReferanceOnly=True時,所要傳回的欄位。
FieldName(欄位名稱)(string):要傳回的欄位名稱,指DataSourceID的
欄位。
GetDataSourceValue(傳回欄位值)(bool):是否以欄位方式傳回,如果
True代表以欄位的方式傳回,如果為False,則FieldName可以不必設定,
因為代表將在OKClick由設計者自行定義此傳回值。
OKButtonCaption(確定抬頭)(string)
設置確定按鈕的抬頭。
OKButtonWidth(確定寬度)(int)
設置確定按鈕的寬度。
OKButtonHeigth(確定高度)(int)
設置確定按鈕的高度。
CancelButtonCaption(取消抬頭)(string)
設置取消按鈕的抬頭。
CancelButtonWidth(取消寬度)(int)
設置取消按鈕的寬度。
CancelButtonHeigth(取消高度)(int)
設置取消按鈕的高度。
ContinueAdd( 繼續新增 )(bool)
當 ContinueAdd=True 時 , 在 新增 模式下按下 'OK' 時 , 對該資料存檔後, 不會關閉該網頁 , 而改用 AddNew 的動作 , 持續讓 User 新增資料 , 一直到 Cancel 為止才會關閉回來。
【方法】
SetRefReturn(int index,string var)
用來自定傳回值,用於ReferanceOnly=True時,須要以RefReturnFields傳回到WebRefButtons的MatchControls時使用,index代表RefRetrunFields中第幾個欄位,var代表要傳回的內容值 ,此函數必須在OKClick事件中使用。
如:
protected void
WebTranslate1_OKClick(object
sender, EventArgs e)
{
WebTranslate1.SetRefReturn(0,
TextBox1.Text);
//將TextBox1.Text設給WebRefButtons的第一個Control
WebTranslate1.SetRefReturn(1,
TextBox2.Text);
//將TextBox2.Text設給WebRefButtons的第二個Control
}
【事件】
OKClick:按下確定按鈕(OK)時觸發本事件。
CancelClick:按下取消按鈕(Cancel)時觸發本事件。
【其它說明】
如果使用於ReferanceOnly=True時,須注意RefReturnFields的數量一定要與WebRefButton的MatchControls數量相符,因為系統會依RefReturnFields的傳回次序,依次傳回到WebRefButton的MatchControls所設定的Control中。
【範例】
這是用來檢查WebTranslate所對應的WebFormView在新增前的檢查程式:
protected void WebFormView1_ItemInserting(object
sender, FormViewInsertEventArgs e)
{
TextBox
ctrl = (TextBox) WebFormView1.FindControl("CompanyNameTextBox"); //假設名稱為 CompanyNameTextBox
if
(string.IsNullOrEmpty(ctrl.Text))
{
e.Cancel = true; //用來取消Insert的動作
Page.Response.Write("<script>alert('公司名稱不能為空!');</script>"); // 顯示警告訊息
WebTranslate1.AllowToReturn
= false; //用來防止結束此網頁
}
}