




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《ASP.NET》
課程教案
2016--2017學年第二學期
任課教師張成年___________
任課班級軟件153__________
課程名稱ASP.NET_________
課程類型專業(yè)必修課_________
總學時80______________
二O一h年二月
授課題目第1章搭建ASP.NET開發(fā)環(huán)境
授課類型理論課+實驗課
多媒體教
教學方法講授、實例驅動教學手段
學
授課時間學時分配3
通過本次課程的學習,主要掌握visualstudio開發(fā)環(huán)境的框
教學目的架知識,安裝知識和開發(fā)環(huán)境常用操作:
框架知識
教學重點頁面創(chuàng)建
網(wǎng)站包括的基本要素
教學難點框架知識
其它
備
教學基本內容注
一、新課導入
我們已經(jīng)學習了C#程序語言,掌握了面向對象編程的基礎,再進一步了解框架相
關知識。包括一個完整網(wǎng)站包括的基本要素和常用的操作。
授課題目第2章服務器控件
授課類型理論課+實驗課
多媒體
教學方法講授、實例驅動教學手段
教學
授課時間學時分配15
通過本次課程的學習,主要掌握以下控件的應用:
Page頁面
Label控件
TextBox控件
Button控件
HyperLink控件
Image控件
ImageButton控件
LinkButton控件
教學目的DropDownList控件
ListBox控件
CheckBox控件
CheckBoxList控件
RadioButton控件
RadioButtonList控件
Panel控件
Table控件
BulletedList控件
ImageMap控件
Label控件
TextBox控件
Button控件
DropDownList控件
教學重點ListBox控件
RadioButtonList控件
Panel控件
Table控件
ImageMap控件
ListBox隹件
RadioButtonList控件
教學難點
Table控件
ImageMap控件
其它
教學基本內容備
注
授課內容提要
第2章服務器控件
(一)Page頁面
1.作用
容器:承載控件
2.重要屬性
IsPostBack
3.例子
Page.IsPostBack屬性
實驗:
添加一個Web窗體,在頁面上放一個按鈕和一個標簽(Label)控件,將Label的Text
屬性設置為0。
在Page_Load事件中寫代碼:
if(!Page.IsPostBack)
(
intx=int.Parse(Label2.Text)+1;
Label2.Text=x.ToStringO;
)
運行,不斷點擊按鈕。
改變后對比(去掉if判斷)
protectedvoidPage_Load(objectsender,EventArgse)
(
intx=int.Parse(Label2.Text)+1;
Label2.Text=x.ToString0;
)
運行,不斷點擊按鈕。
(二)Label控件
1.作用
顯示數(shù)據(jù)
2.重要屬性
BackColor
BorderStyle
BorderWidth
Text
EnableTheming
SkinlD
Height
Width
3.例子
//Label的例子:更改Text屬性和背景顏色
floatsalary=4100.2f;
if(salary>2000)
Label1.Text="您需要交稅〃;
else
Label1.Text="您不需要交稅”;
此處填寫更改顏色的代碼
Label1.BackColor=...
//Label的例子:更改Text屬性和背景顏色
(三)TextBox控件
1.作用
數(shù)據(jù)輸入控件
2.重要屬性和方法
BorderColor
BorderStyle
BorderWidth
Text
EnableTheming
SkinlD
TextMode->SingleLine^MultiLine>Password
Readonly
3.例子
TextBox的Readonly屬性
測試:
放一個文本框(TextBox),將其Readonly屬性設置為true,運行看結果如何?
問題:
在哪里能夠修改文本框的值呢?
參考答案:
一是在設計時通過屬性窗口修改Text屬性,二是在事件中通過代碼修改Text屬
性
(四)Button控件
L作用
響應用戶操作(鼠標和鍵盤事件)。
2.重要屬性和事件
BorderColor
BorderStyle
BorderWidth
Text
EnableTheming
SkinlD
CausesValidation一是否引發(fā)驗證
OnClientClick-〉指定單擊按鈕時執(zhí)行的客戶端腳本代碼函數(shù)名
UseSubmitBehavior->指示按鈕是否呈現(xiàn)為提交按鈕,默認為true
PostBackUrl->指定單擊此按鈕時回發(fā)到的頁面的URL,默認為本頁
在目標頁面中用Page.PreviousPage.FindControl()方法獲取數(shù)據(jù)
Click事件
3.例子
標簽、文本框、按鈕的綜合例子一模擬登錄程序
用戶名匚□用戶名5Z
密碼匚密碼T
麗
知識點:
TextBox的TextMode屬性
If語句
彈出提示對話框(可以帶上耳機)
protectedvoidButtonl_Click(objectsender,EventArgse)
(
stringuid=〃a〃,pwd=〃123〃;
if((TextBoxl.Text==uid)&&(TextBox2.Text==pwd))
Response.Write(z,<script>alert(,用戶名和密碼正確!
)〈/script)“);
else
Response.Write(/z<scriptlanguage='javascript,>alertC用戶名
和密碼不正確!')</script〉“);
)
(五)HyperLink控件
L作用
超級鏈接
2.重要屬性
Text
NavigateUrl
ImageUrl
ToolTip
Target
SkinlD
3.例子
將NavigateUrl設置為default,aspx,然后再
⑴設置Target為空(即默認值),查看效果;
(2)設置Target為_blank,查看效果。
IlyperLink比<aX/a>標記是更方便。
(六)ImageButton控件
L作用
顯示圖片的按鈕
2.重要屬性
ImageUrl
ImageAlign
AlternateText
CausesValidation
PostBackUrl
OnClientClick
ToolTip
Click事件
3.例子
ImageButton的例子
BorderWidth為2
BorderColor為紅色
創(chuàng)建文件夾pic,存入圖片48.gif
ImageUrl=,,"/pic/48.gif〃
(六)LinkButton控件
L作用
顯示為超級鏈接的按鈕
2.重要屬性
Text
CausesValidation
PostBackUrl
OnClientClick
ToolTip
Click事件
(七)DropDownList控件
L作用
顯示數(shù)據(jù)
2.重要屬性
添加項目
聯(lián)動
AutoPostBack屬性
SelectedlndexChanged事件
3.例子
選擇吉林界面選擇四平
以及四平
2區(qū)界面
Page_Load
DropDownListlSelectedlndexChanged
DropDownList2_SelectedIndexChanged
AutoPostBack屬性
Buttonl_Click
練習:DropDownList年、月、日聯(lián)動
日
2010母年2刁月1v32008▼年23月1v日
3
6
7
8
C)l1n
l11
10
11l12
12l13
l14
l15
5l16
l17
6
7l10
l19
18R
19l21
20l22
21l23
22l24
23^
74l^
25節(jié)l27
l28
27l29
284l30
l3_1
(八)ListBox控件
L作用
顯示列表
2.重要屬性
Items
SelectionMode->Single>Multiple
添加新項目
刪除選中項目
查找是否有該項目
清空所有的項目
3.例子
a
sdfs1
ddd
學號
sdfsad
asdsa
似憧非憧
省份名稱.
:刪除選中項?|電全部清空|
Listltem類型
Listitem的兩個重要屬性:Text和Value
創(chuàng)建一個Listltem對象:
ListitemLil=newListitem();
Lil.Text="hello";
Lil.Value=“1”;
添加項目一判空、IsPostBack
問題:
每次點按鈕都添加了多項,如何解決?
解決方案:
判斷是否是第一次,是則添加項;否則什么也不做。
ListBoxl.Items.Add(newListItem(TextBoxl.Text));
添加時判斷是否為空
Trim()方法
邏輯:不為空添加新項目;
為空,彈出不允許為空的對話框。
刪除的業(yè)務邏輯
單項刪除
如果有選中的項目則刪除,否則提示“沒有項目被選中!”
多項刪除
從第一項到最后一項循環(huán),如果第i項被選中則刪除。
問題:
怎么知道一共有多少項?某項被選中怎么區(qū)分?
查找的業(yè)務邏輯
如果找到則選中項目,否則提示“沒有找到”
刪除代碼:
ListBoxl.Items.RemoveAt(i);〃根據(jù)索引刪除項
添加刪除確認對話框:
在PageLoad事件中,寫入
Buttonl.Attributes[<<onClick,,]=ujavascript:returnconfirm('你確認要刪
除嗎?');”,然后在Buttonl_OnClick事件中寫入您的執(zhí)行代碼。
問題:
多選刪除如何實現(xiàn)?
第一想法:
for(inti=0;i<ListBoxl.Items.Count;i++)
if(ListBoxl.Itemsfi].Selected)
(
Response.Write(i+”<br>〃);
ListBoxl.Items.RemoveAt(i);
}
問題:
連續(xù)的時候會少刪除其中一項,什么原因呢?
改進后的刪除代碼:
for(inti=ListBoxl.Items.Count-1;i>=0;i-)
〃改變策略:從后往前刪除
if(ListBoxl.Items[i].Selected)
(
Response.Write(i+〃<br>〃);
ListBoxl.Items.RemoveAt(i);
)
Response.Write(,z<script>alert(,刪除成功!’)</script〉”);
2006級岳曉同學的代碼:
for(inti=0;i<ListBoxl.Items.Count;i++)
if(ListBoxl.Items[i].Selected)
(
Response.Write(i+;
ListBoxl.Items.RemoveAt(i);
i二i-1;〃此處做了改進
}
查找方案:
查找要求:
如果有則選中該項,沒有則提示“沒有滿足條件的項目”。
ListBoxl.Items.FindByText(TextBoxl.Text)
ListBoxl.Items.IndexOf(item)
ListBoxl.Items[position].Selected
查找代碼:
Listitemitem=newListItem(TextBoxl.Text);
intposition=this.ListBoxl.Items.IndexOf(item);
if(position>=0)
(
ListBoxl.Items[position].Selected=true;
)
else
Response.Write(〃<script>alert('沒有滿足條件的項目!‘)〈/script)”);
清空所有項目
protectedvoidPage_Load(objectsender,EventArgse)
(
Button5.Attributes[,zonclickz,]=z/javascript:returnconfirm(5Areyousure
todeleteallitems?')”;
)
protectedvoidButton5_Click(objectsender,EventArgse)
(
ListBoxl.Items.Clear();
)
ListBox控件的常用屬性和方法
ListBoxl.Items.Count
ListBoxl.Items.Selectedlndex可讀寫(賦值或被賦值)
ListBoxl.Items[i].Text
ListBoxl.ItemsEi].Selected可讀寫(賦值或被賦值)
ListBoxl.Items.Add()
ListBoxl.Items.Insert()
ListBoxl.Items.RemoveAt()
ListBoxl.Items.Remove()
ListBoxl.Items.FindByText(TextBoxl.Text)
ListBoxl.Items.IndexOf(item)
(九)CheckBox控件
1.作用
可以多項選擇
2.重要屬性
屬性
Checked
Text
方法
3.例子
您的選擇是,喜歡旅游,不喜歡看書,喜歡打球,不喜歡編程,喜歡游泳.
選擇您的愛好
□旅游
回看書
口田
□編程
回游泳
畫
回旅游
□看書
回打球
口編程
回游泳
1選揮完或1
CheckBox實現(xiàn)多項選擇
添加3個CheckBox和一個Button,內容如圖所示。
點擊“確定”按鈕,提示選擇的項目。
protectedvoidButtonl_Click(objectsender,EventArgse)
(
.〃〃
strings=;
if(CheckBox1.Checked)
s=s+"您喜歡"+CheckBoxl.Text;
if(CheckBox2.Checked)
s=s+“您喜歡〃+CheckBox2.Text;
if(CheckBox3.Checked)
s=s+〃您喜歡〃+CheckBox3.Text;
Response.Write(s);
)
選擇您的爰好
七文學
七音樂
1tl旅游
pg
(十)CheckBoxList控件
1.作用
相當于一組復選框
2.重要屬性
Items
3.例子
CheckBoxList實現(xiàn)多項選擇
protectedvoidButton2_Click(objectsender,EventArgse)
(
for(inti=0;i<CheckBoxListl.Items.Count;i++)
(
if(CheckBoxListl.Items[i].Selected)
Response.Write(CheckBoxListl.Items[i].Text);
}
)
(H-)RadioButton控件
1.作用
實現(xiàn)單項選擇(互斥)
2.重要屬性
Text
AutoPostBack
GroupName
3.例子
鼠標滑過的特效:
鼠標滑過時文本框內容被選中
TextBoxl.Attributes.Add("onMouseOver","this,focus();this,select();;
鼠標點擊時文本框內容被清空
TextBoxl.Attributes.Add("onclick","this.value=''");
(十二)Rad沁ButtonList控件
1.作用
相當于一組RadioButton
2.重要屬性
Items
3.例子
輸入“1964”,點擊“查看”按鈕
點擊“老年”,效果如下:
Of#頜而年齡在60-120三回
(⑥中年]
oo青年
中
Oo年
老
?年
少
O年
1964
出生年份幽
O10W
?!?萬以下
010-20萬
010-20萬
。20萬以上
。20萬以上
0蔽
處理屬性和事件
OText
OAutoPostBack
OGroupName
/protectedvoidPage_Load(objectsender,EventArgse){}
/protectedvoidButtonl_Click(objectsender,EventArgse){}
/protectedvoidRadioButtonl_CheckedChanged(objectsender,EventArgs
e){}
protectedvoidPage_Load(objectsender,EventArgse)
(
TextBoxl.Attributes.Add(〃onMouseOver〃,
“this,focus();this,select();〃);
//TextBoxl.Attributes.Add(,zonMouseOverz,,
“this,focus();this,select();this,value=''〃);
//TextBoxl.Attributes.Add(〃onclick〃,“this.value=,'〃);
)
protectedvoidRadioButtonl_CheckedChanged(objectsender,EventArgse)
(
Response.Write(〃你的年齡在15-30之間〃);
}
(十三)Panel控件
1.作用
容器:相當于組
2.重要屬性
GroupingText
3.例子
書上109頁例子不講,直接講“登錄模擬_Panel控件”的例子。
(十四)Table控件
1.作用
容器,用于布局
2.重要屬性
HorizontalAlign
BackColor
BorderColor
BorderStyle
BorderWidth
ForeColor
GridLines
Font-Bold
Height
Width
3.組成(結合下圖說明)
姓名成績
黃牘英|
10082紀曉嵐
4.例子
書上113頁例子的升級,講“動態(tài)創(chuàng)建表格并填充內容參考代碼”的例子。
簡單總結:Table和Panel實際可以互相嵌套,只是一般最外層是Table.
(十五)BulletedList控件
1.作用
為列表項增加項目符號
2.重要屬性和方法
Items屬性
Items[i].Text屬性
Insert和Add方法
3.例子
書上116頁例子加工,講''動態(tài)添加項目和點擊文字的即時變化”的例子。
(十六)ImageMap控件
1.作用
相當于把一幅圖片虛擬分割成多個區(qū)域。
2.重要屬性和事件
ImageUrl屬性
HotSpotMode屬性
Click事件
3.熱點區(qū)域的劃分
I?X軸
新旗搜狐
雅虎網(wǎng)易
|丁PAllt.
,,丫軸
4.例子
書上117頁例子強力改造,形成了“網(wǎng)易、搜狐、雅虎、新浪網(wǎng)站導航”的例子。
三、小結
1.本章需要掌握控件的主要屬性、方法和事件,利用它們組合形成特定的功能。
2.書上的文字內容不容易理解,通過例子學習更方便,然后再回頭。(循環(huán)反復)
四、作業(yè)
將書上的例子做一遍
五、教學后記
1.服務器控件的作用:
實現(xiàn)用戶的交互,提供操作的接口。
2.教材處理:
書上的例子能夠滿足一定的需求,但是還不夠。(Butthat,snotenough)需要
老師自己重新創(chuàng)造例子。(Doityourself)書上的例子有的課上不做了;有的課上讓
學生自己做,然后演示;有的很好的、有一定難度的老師組織一起踐行。
3.功能驅動法:
首先展示系統(tǒng)的功能(即老師演示程序),讓學生有一個直觀感受,“知道自己去
哪里”。
4.面向過程與面向對象結合
實際本章體現(xiàn)了堆積木原則,也是利用三種常見的程序結構(面向過程),而控件
的屬性、方法則完全是面向對象的思想。
5.學生也很有創(chuàng)造力
實現(xiàn)ListBox多選刪除時,岳曉同學與老師的思路不同,同樣可以完成刪除。
2006級岳曉同學的代碼:
for(inti=0;i<ListBoxl.Items.Count;i++)
if(ListBoxl.Items[i].Selected)
(
Response.Write(i+”<br>");
ListBoxl.Items.RemoveAt(i);
此處做了改進
)
六、參考資料
《ASP.NET數(shù)據(jù)庫開發(fā)入門與提高》(清華大學出版社)
《VisualC#2005編程實例精粹》(中國水利水電出版社)
《VisualC#.NET可視化程序設計》(清華大學出版社)
《ASP.NET動態(tài)網(wǎng)站開發(fā)基礎教程(C#篇)》(清華大學出版社)
授課題目第3章驗證控件
授課類型理論課+實驗課
教學方法講授、實例驅動教學手段多媒體教學
授課時間學時分配5
掌握表單驗證控件、比較驗證控件、范圍驗證控件、正則驗證控件、
教學目的自定義邏輯驗證控件、驗證組控件的使用。
框架知識
教學重點頁面創(chuàng)建
網(wǎng)站包括的基本要素
教學難點框架知識
其它
教學基本內容
ASP.NET提供了強大的驗證控件,它可以驗證服務器控件中用戶的輸入,并在驗
證失敗的情況下顯示一條自定義錯誤消息。驗證控件直接在客戶端執(zhí)行,用戶提交后
執(zhí)行相應的驗證無需使用服務器端進行驗證操作,從而減少了服務器與客戶端之間的
往返過程。
3.1表單驗證控件(RequiredFieldValidator)
在實際的應用中,如在用戶填寫表單時,有一些項目是必填項,例如用戶名和密碼。
在傳統(tǒng)的ASP中,當用戶填寫表單后,頁面需要被發(fā)送到服務器并判斷表單中的某項
HTML控件的值是否為空,如果為空,則返回錯誤信息。在ASP.NET中,系統(tǒng)提供了
RequiredFieldValidator驗證控件進行驗證。使用RequiredFieldVaiidator控件能夠指定某
個用戶在特定的控件中必須提供相應的信息,如果不填寫相應的信息,
RequiredFieldValidator控件就會提示錯誤信息,RequiredFieldValidator控件示例代碼如
下所示。
<body>
<formid="formr,runat="serverM>
<div>
姓名:vasp:TextBoxID="TextBox1Hrunat=Hserver,'></asp:TextBox>
<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="serverH
ControlToValidate=,,TextBox1"ErrorMessage=n必填字段不能為空
"></asp:RequiredFieldValidator>
<br/>
密碼:vasp:TextBoxID="TextBox2"runat="server"></asp:TextBox>
<br/>
<asp:ButtonID="Button1"runat="server"Text='Button"/>
<br/>
</div>
</form>
</body>
在進行驗證時,RequiredFieldValidator控件必須綁定一個服務器控件,在上述代碼中,
驗證控件RequiredFieldValidator控件的服務器控件綁定為TextBoxl,當TextBox1中的
值為空時,則會提示自定義錯誤信息“必填字段不能為空”,如圖3-53所示。
。無標題頁-findovsInternetExplorer
-——3周|X|網(wǎng)L:二SewhP▼
收媒夾號無標題頁||分▼&/?
T]
姓名:|必填字段不能
為空
密碼:|
Button|
_____________________.
I~廠|~廠街記—I?(呆護植式:鬃用|%125%▼/
圖3-53RequiredFieldValidator驗證控件
當姓名選項未填寫時,會提示必填字段不能為空,并且該驗證在客戶端執(zhí)行。當發(fā)生
此錯誤時,用戶會立即看到該錯誤提示而不會立即進行頁面提交,當用戶填寫完成并
再次單擊按鈕控件時,頁面才會向服務器提交。
3.2比較驗證控件(CompareValidator)
比較驗證控件對照特定的數(shù)據(jù)類型來驗證用戶的輸入。因為當用戶輸入用戶信息時,
難免會輸入錯誤信息“如當需要了解用戶的生日時,用戶很可能輸入了其他的字符串。
CompareValidator比較驗證控件能夠比較控件中的值是否符合開發(fā)人員的需要。
CompareValidator控件的特有屬性如下所示:
□ControlToCompare:以字符串形式輸入的表達式。要與另一控件的值進行比較。
□Operator:耍使用的比較。
□Type:要比較兩個值的數(shù)據(jù)類型。
□VaiueToCompare:以字符串形式輸入的表達式。
當使用CompareValidator控件時,可以方便的判斷用戶是否正確輸入,示例代碼如下
所示。
<body>
<formid="form1Hrunat=',server,,>
<div>
請輸入生日:
<asp:TextBoxID="TextBox1"runat="server"x/asp:TextBox>
<br/>
畢業(yè)日期:
<asp:TextBoxID="TextBox2"runat="serverH></asp:TextBox>
<asp:CompareValidatorID="CompareValidator1"runat="serverH
ControlToCompare="TextBox2"ControlToValidate="TextBox1”
CulturelnvariantValues="True"EirorMessage="fS入格式錯誤!請改正!"
Operator="GreaterThanM
Type="Dateu>
</asp:CompareValidator>
<br/>
<asp:ButtonID="Button1"runat=Hserver"Text="Button"/>
<br/>
</div>
</form>
</body>
上述代碼判斷TextBoxl的輸入的格式是否正確,當輸入的格式錯誤時,會提示錯誤,
如圖3-54所示。
圖3-54CompareValidator驗證控件
CompareValidator驗證控件不僅能夠驗證輸入的格式是否正確,還可以驗證兩個控件之
間的值是否相等。如果兩個控件之間的值不相等,CompareValidator驗證控件同樣會將
自定義錯誤信息呈現(xiàn)在用戶的客戶端瀏覽器中。
3.3范圍驗證控件(RangeValidator)
范圍驗證控件(RangeValidator)可以檢查用戶的輸入是否在指定的上限與下限之間。
通常情況下用于檢查數(shù)字、日期、貨幣等。范圍驗證控件(RangeValidator)控件的常
用屬性如下所示。
□MinimumValue:指定有效范圍的最小值。
□MaximumValue:指定有效范圍的最大值。
□Type:指定要比較的值的數(shù)據(jù)類型。
通常情況下,為了控制用戶輸入的范圍,可以使用該控件。當輸入用戶的生日時,今
年是2011年,那么用戶就不應該輸入2012年,同樣基本上沒有人的壽命會超過100,
所以對輸入的日期的下限也需要進行規(guī)定,示例代碼如下所示。
<div>
請輸入生H:<asp:TextBoxID="TextBox1"runat=Mserver"></asp:TextBox>
<asp:RangeValidatorID=nRangeValidator1"runat=nserver"
ControlToValidate="TextBox1"ErrorMessage="超出規(guī)定范圍,請重新填寫"
MaximumValue="2012/1/1MMinimumValue=H1912/1/1'*Type="Date">
</asp:RangeValidator>
<br/>
<asp:ButtonID="Button1"runat='server,'Text="Button"/>
</div>
上述代碼將MinimumValue屬性值設置為1912/1/1,并能將MaximumValue的值設置為
2012/1/1,當用戶的日期低于最小值或高于最高值時,則提示錯誤,如圖3-55所示。
圖3-55RangeValidator驗證控件
注意:RangeValidator險證控件在進行控件的值的范圍的設定時,其范圍不僅僅可
以是一個整數(shù)值,同樣還能夠是時間、日期等值。
3.4正則驗證控件(RegularExpressionValidator)
在上述控件中,雖然能夠實現(xiàn)一些驗證,但是驗證的能力是有限的,例如在驗證的過
程中,只能驗證是否是數(shù)字,或者是否是日期。也可能在驗證時,只能驗證一定范圍
內的數(shù)值,雖然這些控件提供了一些驗證功能,但卻限制了開發(fā)人員進行自定義驗證
和錯誤信息的開發(fā)。為實現(xiàn)一個驗證,很可能需要多個控件同時搭配使用。
正則驗證控件(RegularExpressionValidator)就解決了這個問題,正則驗證控件的功能
非常的強大,它用于確定輸入的控件的值是否與某個正則表達式所定義的模式相匹配,
如電子郵件、電話號碼以及序列號等。
正則驗證控件(RegularExpressionValidator)常用的屬性是ValidationExpression,它用
來指定用于驗證的輸入控件的正則表達式??蛻舳说恼齽t表達式驗證語法和服務端的
正則表達式驗證語法不同,因為在客戶端使用的是JSript正則表達式語法,而在服務
器端使用的是Regex類提供的正則表達式語法。使用正則表達式能夠實現(xiàn)強大字符串
的匹配并驗證用戶的輸入的格式是否正確,系統(tǒng)提供了一些常用的正則表達式,開發(fā)
人員能夠選擇相應的選項進行規(guī)則篩選,如圖3-56所示。
圖3-56系統(tǒng)提供的正則表達式
當選擇了正則表達式后,系統(tǒng)自動生成的HTML代碼如下所示。
<asp:RegularExpressionValidatorID="RegularExpressionValidator1"runat="server"
ControlToValidate="TextBoxI"ErrorMessage=''正則不匹配,請重新輸入!”
ValidationExpression="\d{17}[\d|X]|\d{15}">
</asp:RegularExpressionValidator>
運行后當用戶單擊按鈕控件時,如果輸入的信息與相應的正則表達式不匹配,則會提
示錯誤信息,如圖3-57所示。
圖3-57RegularExpressionValidator驗證控件
同樣,開發(fā)人員也可以自定義正則表達式來規(guī)范用戶的輸入。使用正則表達式能夠加
快驗證速度并在字符串中快速匹配,而另一方面,使用正則表達式能夠減少復雜的應
用程序的功能開發(fā)和實現(xiàn)。
注意:在用戶輸入為空時,其他的驗證控件都會驗證通過。所以,在驗證控件的
使用中,通常需要同表單臉證控件(RequiredFieklValidator)一起使用。
3.5自定義邏輯驗證控件(CustomValidator)
自定義邏輯驗證控件(CustomValidator)允許使用自定義的驗證邏輯創(chuàng)建驗證控件。例
如,可以創(chuàng)建一個驗證控件判斷用戶輸入的是否包含號,示例代碼如下所示。
protectedvoidCustomValidator1_ServerValidate(objectsource,
ServerValidateEventArgsargs)
{
args.lsValid=args.Value.ToString().Contains("J);〃設置驗證程序,并
返回布爾值
protectedvoidButton1_Click(objectsender,EventArgse)//用戶自定義驗證
{
if(Page.lsValid)〃判斷是否驗證通
過
(
Labeh.Text="驗證通過";//輸出驗證通過
else
{
Labeh.Text="輸入格式錯誤”;〃提交失敗信息
)
)
上述代碼不僅使用了驗證控件自身的驗證,也使用了用戶自定義驗證,運行結果如圖
3-58所示。
Q無標鷺頁-YindovsInternetExplorer
▼|^g'f''/loc.三]園勿iXgveSearchP,
收藏夾卷無標題頁||杭?國,二卷,頁面(PA安全6),”
一□
請輸入浮點型:[77884U輸入格式錯
誤
輸入格式錯誤!請重新輸入!
Button|
,d
廠廠廠廠廠廠廠底五不.|保護植式:赫用?1升,/
圖3-58CustomValidator驗證控件
從CustomValidator驗證控件的驗證代碼可以看出,CustomValidator驗證控件可以在服
務器上執(zhí)行驗證檢查。如果要創(chuàng)建服務器端的驗證函數(shù),則處理CustomValidator控件
的ServerValidate事件。使用傳入的ServerValidateEventArgs的對象的IsVaiid字段來設
置是否通過驗證。
而CustomValidator控件同樣也可以在客戶端實現(xiàn),該驗證函數(shù)可用VBScript或Jscript
來實現(xiàn),而在CustomValidator控件中需要使用ClientValidationFunction屬性指定與
CustomValidator控件相關的客戶端驗證腳本的函數(shù)名稱進行控件中的值的驗證。
3.6驗證組控件(ValidationSummary)
驗證組控件(ValidationSummary)能夠對同一頁面的多個控件進行驗證。同時,驗證
組控件(ValidationSummary)通過ErrorMessage屬性為頁面上的每個驗證控件顯式錯
誤信息、。驗證組控件(ValidationSummary)的常用屬性如下所示。
□DisplayMode:摘要可顯示為列表,項目符號列表或單個段落。
□HeaderText:標題部分指定一個自定義標題。
□ShowMessageBox:是否在消息框中顯示摘要。
□ShowSummary:控制是顯示還是隱藏ValidationSummary控件。
驗證控件能夠顯示頁面的多個控件產(chǎn)生的錯誤,示例代碼如下所示。
<body>
<formid="form1'*runat="server',>
<div>
姓名:
<asp:TextBoxID="TextBox1"runat="serverH></asp:TextBox>
<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat=nserver"
ControlToValidate='*TextBox1"ErrorMessage="姓名為必填項",
</asp:RequiredFieldValidator>
<br/>
身份證:
<asp:TextBoxID="TextBox2"runat="serverHx/asp:TextBox>
<asp:RegularExpressionValidatorID="RegularExpressionValidator1"runat="server"
ControlToValidate=',TextBox1"ErrorMessage="身份證號碼錯誤”
ValidationExpression="\d{17}[\d|X]|\d{15}nx/asp:RegularExpressionValidator>
<br/>
<asp:ButtonID="Button1Hrunat='server"Text="Button"/>
<asp:ValidationSummaryID="ValidationSummary1"runat="serverH/>
</div>
</form>
</body>
運行結果如圖3-59所示。
圖3-59Validationsummary驗證控件
當有多個錯誤發(fā)生時,Validationsummary控件能夠捕獲多個驗證錯誤并呈現(xiàn)給用戶,
這樣就避免了一個表單需要多個驗證時需要使用多個驗證控件進行綁定,使用
ValidationSummary控件就無需為每個需要驗證的控件進行綁定。
授課題目第4章常用的內置對象
授課類型理論課+實驗課
教學方法講授、實例驅動教學手段多媒體教學
授課時間學時分配10
通過本次課程的學習,主要掌握以下內置對象的用法:
5.1Response對象
5.2Server對象
教學目的
5.3Session對象
5.4Application對象
5.5Request對象
Respon
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZMDS 20003-2024 醫(yī)療器械網(wǎng)絡安全風險控制 醫(yī)療器械網(wǎng)絡安全能力信息
- 二零二五年度建筑施工現(xiàn)場安全教育培訓協(xié)議
- 2025年度能源行業(yè)員工用工合同樣本
- 2025年度花卉養(yǎng)護與花卉市場銷售渠道合作合同
- 2025年度網(wǎng)絡安全優(yōu)先股入股協(xié)議
- 二零二五年度內架承包與施工合同終止及清算協(xié)議
- 二零二五年度車輛交易抵押借款服務協(xié)議
- 2025年度職業(yè)技能提升家教合同
- 二零二五年度合作社入股農(nóng)業(yè)知識產(chǎn)權入股協(xié)議
- 2025年度車輛抵押權法律咨詢合同
- 中醫(yī)美容養(yǎng)生方法
- 2025年中電建新能源集團有限公司招聘筆試參考題庫含答案解析
- 2024年遼寧現(xiàn)代服務職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 2024年湖南環(huán)境生物職業(yè)技術學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 后循環(huán)缺血治療
- 2024年浙江紹興杭紹臨空示范區(qū)開發(fā)集團有限公司招聘筆試真題
- 2025年體檢科醫(yī)療質量控制工作計劃
- 無人機法律法規(guī)與安全飛行 第2版2-2 領空
- 《單片機應用實訓教程》課件第4章
- 系統(tǒng)思維與系統(tǒng)決策:系統(tǒng)動力學(中央財經(jīng)大學)知到智慧樹章節(jié)答案
- 貨車司機 合股 合同范例
評論
0/150
提交評論