WebNavigator
【功能說明】
用途:使用於
Web 網頁中, 此元件的主要功能是將一系列對資料的操作整合在一個元件項中,包括 : 上筆 , 下筆 , 最前筆 , 最後筆 , 編輯 , 刪除 , 新增 , 確認 , 取消 , 存檔 , 放棄 , 查詢 , 列印等等功能。此外用戶還可以根據自己的需要增加與檢少自己的功能按鈕。
【元件屬性】
ID( 名稱 )(string)
元件名稱,用於識別該元件。
BindingObject( 連結元件 ) (string)
指示 WebNavigator 所控制的資料元件,一般對應的資料元件適合的有 WebGridView,WebDetailsView,WebFormView 等元件。 WebNavigator 是無法直接連接到 WebDataSource 資料元件當中,而必須改連接到要顯示的資料元件上,這部份與 Windows 的 InfoNavigator 是不一樣的觀念。
ViewBindingObect ( 瀏覽元件 )(string)
用來設定
WebNavigator 的瀏覽操作的對象元件,一般是指定到另一個 WebGridView 上來控制其 WebGridView 上的操作。沒有設定本屬性時會針對原
BindingObject 的元件對象來作業。 WebNavigator 的瀏覽操作共有上下筆,首筆末筆,查詢與印表等功能,這些功能都會影響資料的顯示,如果 ViewBindingObject 設了另一個 WebGridView 則這些操作都是會動 WebGridView 來作業,但新增 / 更改 / 刪除 / 確定 / 取消 / 存檔 / 放棄等功能還是對應到 BindingObject 原來的元件上。此屬性純粹是為了用另一個 WebGridView 來瀏覽資料,並能關連到原來的
Master/Detail 的資料 ( 要使用 WebDataSource. ExecuteSync() 來進行資料關連 ) 。
QueryFields( 查詢欄位明細 )(collection)
用來設定 User 在查詢資料 (QueryItem) 時,要指定那些欄位做為查詢條件。
FieldName( 欄位名稱 ) ,指查詢的欄位名稱。
Caption( 查詢抬頭 ) , 取自 D.D.( 資料字典 ) 的 Caption ,沒有定義則取英文 Column 名稱。
Condition( 查詢條件 ) ,可以預設此欄位的查詢方式,可以設定為 %,%%,=,>,<,>=,<=,<> 等等。
Mode( 查詢元件模式 ) ,可選 TextBox 代表一般查詢 ComboBox 代表下拉選單, RefVal 代表使用關連選單, Calendar 代表使用 WebDateTimePicker 來輸入, RefButton 代表使用 RefButton 元件來輸入。
DefaultValue( 預設值 ) ,可以設定查詢的預設值。
RefVal( 關連元件名稱 ) ,當 Mode 為 RefVal/Combobox/RefButton 等時,必須以此來定義對應的元件名稱。
ShowDataStyle(
連結型態 ) (enum)
須配合 BindingObject 所連結的元件來設定,共可選擇 WebGridView , WebDetailsView 與 WebFormView 等三種,如設定錯誤會影響 WebNavigator 與其互動的行為。
QueryMode(
查詢模式 )(enum)
用來控制使用那一種 Query 來實現查詢,可設定為 Normal 或 ClientQuery , Normal 代表 Navigator 內建的查詢, ClientQeury 則代表使用 ClientQeury 取代內建的查詢,但還是使用 QueryField 作為查詢欄位規則。
QueryKeepCondition( 保存查詢條件 )(bool )
設定是否將上一次查詢的條件保存,以便在下一次查詢中可以自動設定好。
GetServerText( 取 Server 端訊息 ) (bool)
用來設定 WebNavigator 各個 Buttons 的抬頭文字是否取自 Server 端 ( 定義在 Sysmsg.xml 中 ) ,並會隨 Client 端的語言來自動抓取,此要 ControlType 不為 Image 時才會有效。
ControlType(
按鈕類型 ) (enum)
用來設定各按鈕的外觀類型,可以設定為 HyperLink( 超連結 ) , Image( 圖示 ) , Button( 按鈕 ) 等。
LinkLabel
( 訊息 Label) (string)
用來選擇一個 Label 元件,用來顯示 WebNavigator 的訊息狀態,訊息的狀態有: Editing( 編輯中 ) , Inserting( 新增中 ) , Browsing( 瀏覽中 ) , Changed( 已變更 ) , ApplySucess( 存檔成功 ) , ApplyFail( 存檔失敗 ) , Aborted( 已放棄 ) 等訊息。會自動配合 Web 的語言別自動決定訊息的語言別。
NavControls
( 按鈕明細 ) (Collection)
用來設置 WebNavigator 中各個 Buttons 的詳細屬性,如下:
ControlName( 按鈕名稱 )(string) : 代表此按鈕的名稱。
ControlText ( 按鈕抬抬 )(string) : 代表此按鈕所顯示的抬頭內容。
ControlType( 按鈕型態 )(enum) : 此按鈕外觀類型,可以設定為 HyperLink(
超連結 ) ,
Image( 圖示 ) , Button( 按鈕 ) 等。
ControlVisible( 顯示 )(bool) : 此按鈕是否顯示。
ImageUrl( 按鈕圖示 )(string) : 此按鈕圖示的 Url 位址 (ControlType 為 Image 時有效 ) 。
MouseOverImageUrl ( 滑過按鈕圖示 )(string) : 當 Mouse 移過此按鈕圖示的 Url 位址 (ControlType 為 Image 時有效 ) 。
Size( 寬度 )(int32) : 按鈕的寬度,單位 px 。
ControlsGap
( 按鈕間隔 ) (int)
各個按鈕間之相鄰的間隔,單位為 px 。
ControlsSize(
按鈕寬度 ) (int)
可以在此統一設置各按鈕的寬度 , 單位為 px 。
ForeColor
( 字型顏色 )(int)
各 Button 文字的顏色。
BackColor
( 背景顏色 )(int)
各 Button 的 底色 。
Height ( 按鈕高度 )(int)
各 Button 的高度。
GridViewMoveMode(GridView
上下筆移動規律
)(enum)
用于設定對應的 WebNavigator 的上下筆(包括第一筆后最后一筆)的移動規則。一個是 PageMode ,一個是 RowMode , 如果是 PageMode ,則依照目前的方式,上下筆為上下頁,如果是 RowMode ,則為上下筆移動。
【事件】
Command ( object sender, CommandEventArgs e)
當網頁上的按鈕被按下時觸發,可以用 e.CommandName 來識別那個 Button 被按到,如下:
protected void WebNavigator1_Command( object sender, CommandEventArgs e)
{
if
(e.CommandName
== "cmdFirst" || e.CommandName == "cmdPrevious"
|| e.CommandName == "cmdNext" || e.CommandName == "cmdLast" )
{
Detail.ExecuteSelect(wfvMaster);
DataBind();
}
else if (e.CommandName == "cmdAdd" )
{
Detail.ExecuteAdd(wfvMaster);
DataBind();
}
}
OnQueryWhere(Eventarg e)
可以用此事件來改變 QueryItem 或 WebClientQuery 的 Where 條件,其中 e.WhereString 就是代表 WhereString 的內容。
BeforeCommand(Eventarg e)
此事件可以先執行此事件 , 再執行系統內建的功能,如下程式可以在內建功能前做判斷與處理:
protected void
WebNavigator1_BeforeCommand(object sender, BeforeCommandArgs e)
{
if (e.CommandName
== "cmdDelete") // 控制 delete 的行為
{
Label l =
(Label)wfvMaster.FindControl("lShippedDate"); // 找出貨日
if (l.Text.Length >0) // 如果有內容
{
wvOrders.Text = " 已出貨無法刪除 ";
e.Cancel =
true; // 要放棄後面的系統內定動作
}
}
}
【功能函數】
PerformApply()
這個 Method 等同在 WebNavigator 上按下 “ Apply ”存檔的按鈕,用來讓 WebDataSource 存檔到後端資料庫中。
SetState( NavigatorStatestate)
透過這個 Method 可以改變 WebNavigator 的訊息狀態,如果有設定 LinkLabel 者即可看到狀態的顯示。
Show(Object
Panel,int Columns)
Panel 代表要顯示的對象,可以像 WebClientQeury 的方式一樣,將 QueryFields 內的欄位顯示在 Panel 元件上, Columns 代表要排列的欄位列數。
Execute(Object
Panel)
從 Panel 中取得查詢條件,並組好 Where 語句送往 WebNavigator 所指定的 WebDataSource 的資料表。
Clear(Object
Panel)
將 Panel 的查詢欄位清除。
GetWhere(Object
Panel)
從 Panel 中取得組好的查詢 Where 語句,但不會送出 Where 的語句,目的是讓開發者自行決定 Where 的 SQL 語句。
【其他說明】
1. 如果要在相對按鈕被按下時執行自己的程式,則可以利用 Command 事件,然後在程式中判斷執行的是那個按鈕,在 Command 事件中有一個 CommandName 的屬性可以取用,代表是那個 Button 被按到, CommandName 內容依次為 cmdFirst , cmdLast , cmdPrevious , cmdNext , cmdEdit , cmdAdd , cmdDelete , cmdOK , cmdCancel , cmdApply , cmdAbort , cmdQuery , cmdPrint 等分別代表不同的按鈕。如可以用以下的自定義的程式來取代原來個功能:
if (e.CommandName == "cmdPrevious")
{
// 自定上筆的程式邏輯
}
else if(e.CommandName == "cmdNext")
{
// 自定下筆的程式邏輯
}
2
WebNavigator 中 , 新增當 Mouse 移到 Icon 時 , 會自動顯示相對的提示文字 (Strip).
3
WebNavigator 與 InfoNavigator 增加 Export Icon, 將目前的 BindingSource 或 WebDataSource 輸出到 Excle 檔案中 ( 可讓 User 填寫檔案名稱 ), 如果已經開發好的系統要自行增加這個 Icon( 命名為 Export), 或重新貼 InfoNavigator/WebNavigator 也可以 .
4.Web Navigator 的查詢介面中,可以輸入 "NULL" 這個字串, 來代表找資料為 NULL 或空白的資料, 以方便 User 查詢空白的資料。
| Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |