第1章EEP2019網頁開發快速入門第1章EEP2019網頁開發快速入門\1-4預設與檢核

1-4預設與檢核

 

 

預設與檢核在資料的輸入作業當中,扮演著很重要的角色,以下我們用
 WebDetiailsView
為例來設計預設與檢核。

 

q   設定預設值

 

WebDefault元件是用於在新增時給資料表的某些欄位設計預設值,與Windows中的DefaultValidateDefault功能相同,動態給欄位賦予初值。

Step1開啟W002頁面,在設計頁面中增加一個WebDefault元件,將其命名為【wdMaster】(ID設為wdMaster

設定wdMaster的『DataSourceID』屬性為【Master。代表要預設的資料源。

wdMaster的『DefaultActive』屬性設為【True】,使wdMaster的預設功能起了作用。

 

1-4-1 設定WebDefault元件屬性

Step2按下屬性「Fields」右方的按鍵。

 

1-4-2 進入Fields設置

 

Step3設定要做預設值的Fields內容,這裏按下【ADD】增加一個Member,在「FieldName」選擇【OrderDate】,「DefaultValue」可以設定為固定值,也可以通過加()來定義函數,動態的設定預設值,這裏設為【MyDate()】。

 

1-4-3設定預設值的Fields

Step4增加下列代碼。

protected object MyDate()
  
  {

return DateTime.Today;//回傳當天日期
 
   }

 

 這裏請注意:

函數的返回值為object類型,而不必考慮該欄位是什麼類型,系統會自動轉換為對應類型。這裏將OrderDate預設為當天日期。在此是為了讓開發者瞭解可以自行寫程式傳回預設值,如在應用上應該直接在DefaultValue設定為系統變數 _TODAY即可。

 

Step5W002鍵執行Build Page,然後在InfoLogin.aspx按滑鼠右鍵,選取「View in Browser」去執行。然後「新增」一筆資料,不要存檔,因為此Orders為自增值方式,要在下一章才能解決。

 


1-4-4 執行新增

 

按下新增後,可以看到如下內容:



1-4-5新增後

 

q  設定檢核

 

WebValidate元件是用於對資料輸入時要做合法性檢核,與Windows中的DefaultValidateValidate功能相同。

 

Step1進入W002頁面,在設計頁面中增加一個WebValidate元件。

 


1-4-6 新增WebValidate元件

 

Step2將其命名為【wvMaster】,設定wvMaster的『DataSourceID』屬性為【Master(代表要檢核的資料源對象)

 



1-4-7 設定屬性

 

Step3按下「Fields」右方的按鍵,設定wvMasterFields屬性,設定那些欄位元需要做資料檢核。

 

資料的檢核有三種方式,一種是檢查空白,一種是範圍檢查,最後一種是自定義條件檢查。前兩種只需簡單的設定,系統會有自已的訊息來通知User(訊息放在SysMsg.XML中),而自定義條件檢核則需要寫程式來實現。我們在這裏設定3個欄位分別做3種方式的資料檢核。

 

Œ     增加『EmployeeID』欄位。

將『CheckNull』屬性設為【True】,表示該欄位內容為不能為空。


1-4-8 增加EmployeeID欄位

 

   增加ShipVia欄位。

CheckRangeFrom設為【0】,CheckRangeTo設為【10】,表示該欄位值的範圍在010之間,不該超出這個範圍。

 


1-4-9 增加ShipVia欄位

 

Ž   增加CustomerID欄位。

Validate屬性設為【MyCheckID()】,表示CustomerID的值需要通過MyCheckID()函數的檢查。

最後將CustomerID這一子項目的WarningMsg屬性設為【Invalid CustomerID】(不設定時系統會有預設的訊息)。此屬性只對自定義條件檢查有作用,當檢查沒有通過時,會提示User該資訊。另外兩種檢核的錯誤提示則設定於Sysmsg.xml檔中,也可自行更改,且支援多語言。

 


1-4-10 增加CustomerID欄位

 

     編寫MyCheckID()函數,檢核內容為,CustomerID的值應該在Customers資料表中存在,代碼如下:

 

    public bool MyCheckID(object var)

    {

        if (var.ToString().Length == 0) return false;

        else

        {

            InitializeComponent();//因為Wmaster這個WebDataset不在網頁中, 所以無法保留狀態,須重新InitalizeComponent()才會存在

            DataSet Tmp = WMaster.Execute("Select * From Customers Where CustomerID='" + var.ToString() + "'");

            if (Tmp.Tables[0].Rows.Count == 0) return false; //CustomerID不存在,返回False

            return true; //CustomerID存在,資料登錄合法,返回True

        }

    }

注:函數的參數是固定的,系統會自動將User輸入的值傳給var

 

Step4wvMaster的『ValidateActive』屬性設為【True】,讓wvMasterWebValidate)有效。

1-4-11 啟動ValidateActive

 

 

Step5W002鍵執行Build Page」,然後在InfoLogin.aspx按滑鼠右鍵,選取「View in Browser」去執行,然後去到W002中去更改資料。分別做3次「修改」以查看效果。


1-4-12 修改記錄

Œ     修改一筆資料,將「EmployeeID」的值清空。

1-4-13 修改記錄

     點擊會出現如圖提示。(會依你的IE語言語系來反應。

1-4-14 檢核信息一

Ž     修改一筆資料,將「ShipVia」的值改為15,點擊會出現如圖提示:

 

1-4-15 檢核信息二

     修改一筆資料的CustomerID,如果該ID不存在,點擊則會出現如圖提示:


1-4-16 檢核信息三

Top of Page