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)