WebRefValWindows中的InfoRefVal一樣,除了可以作為關連選單的輸入控制外,還可以在選擇的資料中傳回指定的欄位到目前網頁來,這個功能我們稱為ColumnMatch

 

 

q  WebFormView中使用WebRefValColumnMatch

 

Step1打開W005,進入wfvMasterEditItemTemplate狀態,選中wrvSupplier (WebRefVal)元件。按一下ColumnMatch屬性打開對話窗,按Add增加一個ColumnMatch項目,屬性設置如圖。

3-5-1 增加一個ColumnMatch

 

這裏是將Suppliers資料表中的City欄位元的值,自動傳回到原網頁的ShipCityTextBox,也就是要傳回給Purchases資料表中的ShipCity欄位。

Step2再進入wfvMasterInsertItemTemplate狀態,將其中的WebRefVal元件如Step1一樣設置。

 

Step3結束Template的設定,對W005存檔後並執行Build Page,在InfoLogin.aspx右鍵執行View in Browser,瀏覽查看結果。

圖為進入更改的Edit狀態下,當將SupplierID透過選單選擇回來後,ShipCity就自動帶入此SupplierCity值。

3-5-2看結果

 

 

q  WebDetailsView中的使用WebRefValColumnMatch

 

WebDetailsview要使用WebRefValColumnMatch功能,須特別注意當WebRefVal傳回後,要被設值的欄位同樣也要將該欄位轉成TemplateField形式,否則無法在ColumnMatch屬性中定義。


Step1打開W004,按一下wdvMasterFields屬性,這裏因為ColumnMatch中的傳回值有要對ShipAddress欄位設值,因此我們須對這個欄位轉成TemplateField,選中ShipAddress,並按一下畫面的右下角的Convert this field into a TemplateField。按一下OK

 

3-5-3轉成TemplateField

 

Step2接著我們可以將轉成TemplateFieldShipAddress元件更名,一般轉成TemplateField後都會編成TextBox1TextBox2等。為了容易識別,我們在WebDetailsView上右鍵Edit Template選中ShipAddress,分別將EditItemTemplateInsertItemTemplate中的TextBox命名為tbShipAddress相同名沒有關係,因新增與更改不會同時存在

 

3-5-4更名

Step3直接按一下wdvMaster右上角的小三角,並從下拉清單中選中CustomerIDWebRefVal元件,分別對EditItemTemplateInsertTemplate中的wrvCustomerColumnMatch進行設置。按下打開ColumnMatch屬性的對話方塊,其設定方法與在WebFormView中的相同,將 DestControlID 設為tbShipAddressScrField則設為Address,如圖。

3-5-5設置ColumnMatch

 

Step4結束Template的設定,對W004存檔後並執行Build Page,在InfoLogin.aspx右鍵執行View in Browser,瀏覽查看結果。

圖為在W004在「更改」的狀態,當用WebRefVal取改變CustomerID的值時,會自動將對方的Address值帶回ShipAddress欄位中。

 


3-5-6執行W004表單

 

q  WebGridView中的使用WebRefValColumnMatch

 

WebGridview要使用WebRefValColumnMatch功能,同樣也需要將要被設值的欄位先轉換成TemplateField,才能使用。

 

Step1打開W005,按一下wgvDetailColumns屬性,這裏要對UnitPrice欄位作ColumnMatch對應,就是要將Products內的UnitPrice傳回到Purchase DetailsUnitPrice中,選中 UnitPrice,並按一下畫面的右下角的Convert this field into a TemplateField。按一下OK


3-5-7執行W004表單

 

Step2按一下WebGridView,我們要將UnitPrice欄位的TemplateField更名,右鍵Edit Template選中UnitPrice,將EditItemTemplate內的TextBox命名為tbUnitPrice即可。

3-5-8UnitPrice更名

 

Step3WebGridView因為沒有InsertItemTemplate,所以我們使用FooterTemplate來做為InsertItemTemplate,將EditItemTemplatetbUnitPrice按下Ctrl-C複製,然後在FooterTemplate按下Ctrl-V貼上,名稱同樣為tbUnitPrice,因為更改與新增不會同時存在。

 

3-5-9貼入FooterTemplate

 

因為我們用FooterTemplate取代了InertItemTemplate,而FooterTemplate無法定義Data Binding的關係,所以就必須在WebGridViewAddNewRowControls屬性中來定義此Data Binding的關係。

 

Step4Add後,設定ControlIDtbUnitPriceFieldName則選UnitPrice,對FooterTemplate進行資料綁定。

 

3-5-10 FooterTemplate進行綁定

注意:

如果不是TemplateField的欄位,就可以不必在AddNewRowControls中定義,系統會自動為你進行資料綁定)

 

Step5最後,按一下wgvDetail,右鍵Edit Template並選中ProductID,分別對EditItemTemplateInsertTemplate中的WebRefVal元件進行ColumnMatch的設定。打開ColumnMatch屬性後,將DestControlID設定為tbUnitPrice SrcField設定為UnitPrice,就是代表要將ProductsUnitPrice傳回到Purchase DetailsUnitPrice中,如圖:

 

       3-5-11 設定ColumnMatch

 

Step6結束TemplateField的設定,對W005存檔後並執行Build Page,在InfoLogin.aspx右鍵執行View in Browser,瀏覽查看結果。

圖為在DetailWebGridView中對其進行「更改」狀態下,當你對ProductID進行WebRefVal選單並傳回值時,會自動將對方的UnitPrice的值帶回DetailUnitPrice欄位中。

       3-5-12 執行W005表單

 

 



訊光科技系統股份有限公司

Converted from CHM to HTML with chm2web Pro 2.85 (unicode)