【功能說明】

用途:使用於Web網頁中,此元件的主要功能是將一系列對資料的操作整合在一個元件項中,包括:上筆,下筆,最前筆,最後筆,編輯,刪除,新增,確認,取消,存檔,放棄,查詢,列印等等功能。此外用戶還可以根據自己的需要增加與減少自己的功能按鈕。


【元件屬性】

(ID)(名稱)(string)

元件名稱,用於識別該元件。

BindingObject(連結元件)(string)

指示WebNavigator所控制的資料元件,一般對應的資料元件適合的有WebGridView,WebDetailsView,WebFormView等元件。WebNavigator是無法直接連接到WebDataSource資料元件當中,而必須改連接到要顯示的資料元件上,這部份與WindowsInfoNavigator是不一樣的觀念。

 

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(關連元件名稱),當ModeRefVal/Combobox/RefButton等時,

必須以此來定義對應的元件名稱。

 

ShowDataStyle(連結型態)(enum)

須配合BindingObject所連結的元件來設定,共可選擇WebGridViewWebDetailsViewWebFormView等三種,如設定錯誤會影響WebNavigator與其互動的行為。

QueryMode(查詢模式)(enum)

用來控制使用那一種Query來實現查詢,可設定為NormalClientQueryNormal代表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位址(ControlTypeImage時有效)

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();

     }

}

 

QueryWhere(Eventarg e)

可以用此事件來改變QueryItemWebClientQueryWhere條件,其中 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(NavigatorState state)

透過這個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的語句,目的是讓開發者自行決定WhereSQL語句。

【其它說明】

1. 如果要在相對按鈕被按下時執行自己的程式,則可以利用Command事件,然後在程式中判斷執行的是那個按鈕,在Command事件中有一個CommandName的屬性可以取用,代表是那個Button被按到,CommandName內容依次為cmdFirstcmdLastcmdPreviouscmdNextcmdEditcmdAddcmdDeletecmdOKcmdCancelcmdApplycmdAbortcmdQuerycmdPrint等分別代表不同的按鈕。如可以用以下的自定義的程式來取代原來個功能:

if (e.CommandName == "cmdPrevious")

{

// 自定上筆的程式邏輯

}

else if (e.CommandName == "cmdNext")

{

// 自定下筆的程式邏輯

}

 

2. WebNavigator中,新增當Mouse移到Icon時,會自動顯示相對的提示文字(Strip)

 

3. WebNavigatorInfoNavigator增加Export Icon,將目前的BindingSourceWebDataSource輸出到Excle檔案中(可讓User填寫檔案名稱),如果已經開發好的系統要自行增加這個Icon(命名為Export),或重新貼InfoNavigator/WebNavigator也可以。

 

4.WebNavigator的查詢介面中,可以輸入"NULL"這個字串,來代表找資料為NULL或空白的資料,以方便User查詢空白的資料。

 

 

 


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

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