第四天
學習目的:掌握WEB控件的使用(二)
首先我要說明,我這十天教程也只是一個讓大家對ASP.NET有一個認識而已,我也跳過了很多東西。網上有很多人在責罵我寫的教程,認為十天什麼都學不會,看了我的教程還是什麼都不會,我想他們或許是過高估計了我的教程。外面有很多書,關於ASP和ASP.NET的,我就是看外面的書學會的。我所要做的就是希望大家能看了我的教程以後覺得ASP和ASP.Net不是學不會的東西然後有信心去學會它。我想學習還是靠自己的,外面每一本書也有自己寫的不周到的地方,關鍵還需要自己的實踐加上探索。
首先來說一下表單的驗證控件,以前我們做表單驗證,如果是客戶端的JavaSCRIPT,不能做到美觀統一,而且還可以通過直接在浏覽器起教表單來屏蔽;如果我們做服務器端驗證,又會發現讓檢驗結果在前台反映也是很麻煩的事情。現在好了,ASP.Net提供的很多檢驗控件讓我們不需要考慮是客戶端檢驗還是服務器端檢驗,讓我們不需要考慮是怎麼輸出檢驗結果。
看一下檢驗表單控件是不是填寫了的檢驗控件先:
<ASP:textbox id="username" runat="server" CSSclass="textbox"/>
<ASP:requiredfIEldvalidator controltovalidate="username" display="dynamic" forecolor="#ff0000" font-name="宋體" font-size="9pt" text="請填寫" runat="server"/>
controltovalidate就是你想檢驗的控件的ID;默認情況下不顯示錯誤消息,地方也會被保留,如果使用了display="dynamic" 那麼不顯示錯誤消息的地方不會被空出; forecolor="#ff0000" font-name="宋體" font-size="9pt" 就是設定錯誤消息字體的顏色,字體,大小的;text="請填寫" 就是當沒有填寫內容時候顯示的錯誤消息;別忘記最後的runat="server"。現在這個檢驗控件是放在了textbox的後面,那麼錯誤消息也在textbox後面顯示,也可以放在其他地方。
再看一下比較表單控件的數據與另外一個數據的檢驗控件:
<ASP:textbox id="password1" runat="server" textmode="passWord" CSSclass="textbox"/>
<ASP:requiredfIEldvalidator controltovalidate="passWord1" display="dynamic" forecolor="#ff0000" font-name="宋體" font-size="9pt" text="請填寫" runat="server"/>
這裡是第一個需要用戶填寫的密碼框
我們經常會再設立一個密碼框讓用戶再填寫一次:
<ASP:textbox id="password2" runat="server" textmode="passWord" CSSclass="textbox"/>
<ASP:requiredfIEldvalidator controltovalidate="passWord2" display="dynamic" forecolor="#ff0000" font-name="宋體" font-size="9pt" text="請填寫" runat="server"/>
<ASP:comparevalidator controltovalidate="password2" controltocompare="passWord1" display="dynamic" Operator="equal" forecolor="#ff0000" font-name="宋體" font-size="9pt" text="確認失敗" runat="server"/>
controltocompare="passWord1" 就是需要比較的控件;Operator="equal" 就是設定比較操作是:是否相等(還有NotEqual:不相等,LessThan:少於,GreaterThan:大於,當不符合這個比較操作的時候顯示錯誤消息)。
以前說到BUTTON控件CausesValidation=true/false來設置按鈕提交的表單是不是被檢驗也就是這裡的幾個檢驗控件,如果CausesValidation=true的話按下按鈕就會首先檢測是不是都通過了檢驗控件的檢驗。
下面再說兩點:
一、每一個可以顯示的控件都有是不是顯示的屬性,比如username.Visible=false;就是隱藏了前面的username控件;還有就是如果要對控件應用CSS的話就這麼寫:CSSclass="",而不是以前Html中的class=""。
二、所有WEB控件都要包含在<form runat="server"></form>中,否則就會出錯。
今天就到此結束,請繼續往後面看,下次開始就要說ADO.Net了。