版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《ASP.NET》
課程教案
2016--2017學(xué)年第二學(xué)期
任課教師張成年___________
任課班級(jí)軟件153__________
課程名稱ASP.NET_________
課程類型專業(yè)必修課_________
總學(xué)時(shí)80______________
二O一h年二月
授課題目第1章搭建ASP.NET開(kāi)發(fā)環(huán)境
授課類型理論課+實(shí)驗(yàn)課
多媒體教
教學(xué)方法講授、實(shí)例驅(qū)動(dòng)教學(xué)手段
學(xué)
授課時(shí)間學(xué)時(shí)分配3
通過(guò)本次課程的學(xué)習(xí),主要掌握visualstudio開(kāi)發(fā)環(huán)境的框
教學(xué)目的架知識(shí),安裝知識(shí)和開(kāi)發(fā)環(huán)境常用操作:
框架知識(shí)
教學(xué)重點(diǎn)頁(yè)面創(chuàng)建
網(wǎng)站包括的基本要素
教學(xué)難點(diǎn)框架知識(shí)
其它
備
教學(xué)基本內(nèi)容注
一、新課導(dǎo)入
我們已經(jīng)學(xué)習(xí)了C#程序語(yǔ)言,掌握了面向?qū)ο缶幊痰幕A(chǔ),再進(jìn)一步了解框架相
關(guān)知識(shí)。包括一個(gè)完整網(wǎng)站包括的基本要素和常用的操作。
授課題目第2章服務(wù)器控件
授課類型理論課+實(shí)驗(yàn)課
多媒體
教學(xué)方法講授、實(shí)例驅(qū)動(dòng)教學(xué)手段
教學(xué)
授課時(shí)間學(xué)時(shí)分配15
通過(guò)本次課程的學(xué)習(xí),主要掌握以下控件的應(yīng)用:
Page頁(yè)面
Label控件
TextBox控件
Button控件
HyperLink控件
Image控件
ImageButton控件
LinkButton控件
教學(xué)目的DropDownList控件
ListBox控件
CheckBox控件
CheckBoxList控件
RadioButton控件
RadioButtonList控件
Panel控件
Table控件
BulletedList控件
ImageMap控件
Label控件
TextBox控件
Button控件
DropDownList控件
教學(xué)重點(diǎn)ListBox控件
RadioButtonList控件
Panel控件
Table控件
ImageMap控件
ListBox隹件
RadioButtonList控件
教學(xué)難點(diǎn)
Table控件
ImageMap控件
其它
教學(xué)基本內(nèi)容備
注
授課內(nèi)容提要
第2章服務(wù)器控件
(一)Page頁(yè)面
1.作用
容器:承載控件
2.重要屬性
IsPostBack
3.例子
Page.IsPostBack屬性
實(shí)驗(yàn):
添加一個(gè)Web窗體,在頁(yè)面上放一個(gè)按鈕和一個(gè)標(biāo)簽(Label)控件,將Label的Text
屬性設(shè)置為0。
在Page_Load事件中寫代碼:
if(!Page.IsPostBack)
(
intx=int.Parse(Label2.Text)+1;
Label2.Text=x.ToStringO;
)
運(yùn)行,不斷點(diǎn)擊按鈕。
改變后對(duì)比(去掉if判斷)
protectedvoidPage_Load(objectsender,EventArgse)
(
intx=int.Parse(Label2.Text)+1;
Label2.Text=x.ToString0;
)
運(yùn)行,不斷點(diǎn)擊按鈕。
(二)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屬性
測(cè)試:
放一個(gè)文本框(TextBox),將其Readonly屬性設(shè)置為true,運(yùn)行看結(jié)果如何?
問(wèn)題:
在哪里能夠修改文本框的值呢?
參考答案:
一是在設(shè)計(jì)時(shí)通過(guò)屬性窗口修改Text屬性,二是在事件中通過(guò)代碼修改Text屬
性
(四)Button控件
L作用
響應(yīng)用戶操作(鼠標(biāo)和鍵盤事件)。
2.重要屬性和事件
BorderColor
BorderStyle
BorderWidth
Text
EnableTheming
SkinlD
CausesValidation一是否引發(fā)驗(yàn)證
OnClientClick-〉指定單擊按鈕時(shí)執(zhí)行的客戶端腳本代碼函數(shù)名
UseSubmitBehavior->指示按鈕是否呈現(xiàn)為提交按鈕,默認(rèn)為true
PostBackUrl->指定單擊此按鈕時(shí)回發(fā)到的頁(yè)面的URL,默認(rèn)為本頁(yè)
在目標(biāo)頁(yè)面中用Page.PreviousPage.FindControl()方法獲取數(shù)據(jù)
Click事件
3.例子
標(biāo)簽、文本框、按鈕的綜合例子一模擬登錄程序
用戶名匚□用戶名5Z
密碼匚密碼T
麗
知識(shí)點(diǎn):
TextBox的TextMode屬性
If語(yǔ)句
彈出提示對(duì)話框(可以帶上耳機(jī))
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作用
超級(jí)鏈接
2.重要屬性
Text
NavigateUrl
ImageUrl
ToolTip
Target
SkinlD
3.例子
將NavigateUrl設(shè)置為default,aspx,然后再
⑴設(shè)置Target為空(即默認(rèn)值),查看效果;
(2)設(shè)置Target為_(kāi)blank,查看效果。
IlyperLink比<aX/a>標(biāo)記是更方便。
(六)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作用
顯示為超級(jí)鏈接的按鈕
2.重要屬性
Text
CausesValidation
PostBackUrl
OnClientClick
ToolTip
Click事件
(七)DropDownList控件
L作用
顯示數(shù)據(jù)
2.重要屬性
添加項(xiàng)目
聯(lián)動(dòng)
AutoPostBack屬性
SelectedlndexChanged事件
3.例子
選擇吉林界面選擇四平
以及四平
2區(qū)界面
Page_Load
DropDownListlSelectedlndexChanged
DropDownList2_SelectedIndexChanged
AutoPostBack屬性
Buttonl_Click
練習(xí):DropDownList年、月、日聯(lián)動(dòng)
日
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
添加新項(xiàng)目
刪除選中項(xiàng)目
查找是否有該項(xiàng)目
清空所有的項(xiàng)目
3.例子
a
sdfs1
ddd
學(xué)號(hào)
sdfsad
asdsa
似憧非憧
省份名稱.
:刪除選中項(xiàng)?|電全部清空|
Listltem類型
Listitem的兩個(gè)重要屬性:Text和Value
創(chuàng)建一個(gè)Listltem對(duì)象:
ListitemLil=newListitem();
Lil.Text="hello";
Lil.Value=“1”;
添加項(xiàng)目一判空、IsPostBack
問(wèn)題:
每次點(diǎn)按鈕都添加了多項(xiàng),如何解決?
解決方案:
判斷是否是第一次,是則添加項(xiàng);否則什么也不做。
ListBoxl.Items.Add(newListItem(TextBoxl.Text));
添加時(shí)判斷是否為空
Trim()方法
邏輯:不為空添加新項(xiàng)目;
為空,彈出不允許為空的對(duì)話框。
刪除的業(yè)務(wù)邏輯
單項(xiàng)刪除
如果有選中的項(xiàng)目則刪除,否則提示“沒(méi)有項(xiàng)目被選中!”
多項(xiàng)刪除
從第一項(xiàng)到最后一項(xiàng)循環(huán),如果第i項(xiàng)被選中則刪除。
問(wèn)題:
怎么知道一共有多少項(xiàng)?某項(xiàng)被選中怎么區(qū)分?
查找的業(yè)務(wù)邏輯
如果找到則選中項(xiàng)目,否則提示“沒(méi)有找到”
刪除代碼:
ListBoxl.Items.RemoveAt(i);〃根據(jù)索引刪除項(xiàng)
添加刪除確認(rèn)對(duì)話框:
在PageLoad事件中,寫入
Buttonl.Attributes[<<onClick,,]=ujavascript:returnconfirm('你確認(rèn)要?jiǎng)h
除嗎?');”,然后在Buttonl_OnClick事件中寫入您的執(zhí)行代碼。
問(wèn)題:
多選刪除如何實(shí)現(xiàn)?
第一想法:
for(inti=0;i<ListBoxl.Items.Count;i++)
if(ListBoxl.Itemsfi].Selected)
(
Response.Write(i+”<br>〃);
ListBoxl.Items.RemoveAt(i);
}
問(wèn)題:
連續(xù)的時(shí)候會(huì)少刪除其中一項(xiàng),什么原因呢?
改進(jìn)后的刪除代碼:
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級(jí)岳曉同學(xué)的代碼:
for(inti=0;i<ListBoxl.Items.Count;i++)
if(ListBoxl.Items[i].Selected)
(
Response.Write(i+;
ListBoxl.Items.RemoveAt(i);
i二i-1;〃此處做了改進(jìn)
}
查找方案:
查找要求:
如果有則選中該項(xiàng),沒(méi)有則提示“沒(méi)有滿足條件的項(xiàng)目”。
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('沒(méi)有滿足條件的項(xiàng)目!‘)〈/script)”);
清空所有項(xiàng)目
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.作用
可以多項(xiàng)選擇
2.重要屬性
屬性
Checked
Text
方法
3.例子
您的選擇是,喜歡旅游,不喜歡看書,喜歡打球,不喜歡編程,喜歡游泳.
選擇您的愛(ài)好
□旅游
回看書
口田
□編程
回游泳
畫
回旅游
□看書
回打球
口編程
回游泳
1選揮完或1
CheckBox實(shí)現(xiàn)多項(xiàng)選擇
添加3個(gè)CheckBox和一個(gè)Button,內(nèi)容如圖所示。
點(diǎn)擊“確定”按鈕,提示選擇的項(xiàng)目。
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);
)
選擇您的爰好
七文學(xué)
七音樂(lè)
1tl旅游
pg
(十)CheckBoxList控件
1.作用
相當(dāng)于一組復(fù)選框
2.重要屬性
Items
3.例子
CheckBoxList實(shí)現(xiàn)多項(xiàng)選擇
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.作用
實(shí)現(xiàn)單項(xiàng)選擇(互斥)
2.重要屬性
Text
AutoPostBack
GroupName
3.例子
鼠標(biāo)滑過(guò)的特效:
鼠標(biāo)滑過(guò)時(shí)文本框內(nèi)容被選中
TextBoxl.Attributes.Add("onMouseOver","this,focus();this,select();;
鼠標(biāo)點(diǎn)擊時(shí)文本框內(nèi)容被清空
TextBoxl.Attributes.Add("onclick","this.value=''");
(十二)Rad沁ButtonList控件
1.作用
相當(dāng)于一組RadioButton
2.重要屬性
Items
3.例子
輸入“1964”,點(diǎn)擊“查看”按鈕
點(diǎn)擊“老年”,效果如下:
Of#頜而年齡在60-120三回
(⑥中年]
oo青年
中
Oo年
老
?年
少
O年
1964
出生年份幽
O10W
?!?萬(wàn)以下
010-20萬(wàn)
010-20萬(wàn)
。20萬(wàn)以上
。20萬(wàn)以上
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.作用
容器:相當(dāng)于組
2.重要屬性
GroupingText
3.例子
書上109頁(yè)例子不講,直接講“登錄模擬_Panel控件”的例子。
(十四)Table控件
1.作用
容器,用于布局
2.重要屬性
HorizontalAlign
BackColor
BorderColor
BorderStyle
BorderWidth
ForeColor
GridLines
Font-Bold
Height
Width
3.組成(結(jié)合下圖說(shuō)明)
姓名成績(jī)
黃牘英|
10082紀(jì)曉嵐
4.例子
書上113頁(yè)例子的升級(jí),講“動(dòng)態(tài)創(chuàng)建表格并填充內(nèi)容參考代碼”的例子。
簡(jiǎn)單總結(jié):Table和Panel實(shí)際可以互相嵌套,只是一般最外層是Table.
(十五)BulletedList控件
1.作用
為列表項(xiàng)增加項(xiàng)目符號(hào)
2.重要屬性和方法
Items屬性
Items[i].Text屬性
Insert和Add方法
3.例子
書上116頁(yè)例子加工,講''動(dòng)態(tài)添加項(xiàng)目和點(diǎn)擊文字的即時(shí)變化”的例子。
(十六)ImageMap控件
1.作用
相當(dāng)于把一幅圖片虛擬分割成多個(gè)區(qū)域。
2.重要屬性和事件
ImageUrl屬性
HotSpotMode屬性
Click事件
3.熱點(diǎn)區(qū)域的劃分
I?X軸
新旗搜狐
雅虎網(wǎng)易
|丁PAllt.
,,丫軸
4.例子
書上117頁(yè)例子強(qiáng)力改造,形成了“網(wǎng)易、搜狐、雅虎、新浪網(wǎng)站導(dǎo)航”的例子。
三、小結(jié)
1.本章需要掌握控件的主要屬性、方法和事件,利用它們組合形成特定的功能。
2.書上的文字內(nèi)容不容易理解,通過(guò)例子學(xué)習(xí)更方便,然后再回頭。(循環(huán)反復(fù))
四、作業(yè)
將書上的例子做一遍
五、教學(xué)后記
1.服務(wù)器控件的作用:
實(shí)現(xiàn)用戶的交互,提供操作的接口。
2.教材處理:
書上的例子能夠滿足一定的需求,但是還不夠。(Butthat,snotenough)需要
老師自己重新創(chuàng)造例子。(Doityourself)書上的例子有的課上不做了;有的課上讓
學(xué)生自己做,然后演示;有的很好的、有一定難度的老師組織一起踐行。
3.功能驅(qū)動(dòng)法:
首先展示系統(tǒng)的功能(即老師演示程序),讓學(xué)生有一個(gè)直觀感受,“知道自己去
哪里”。
4.面向過(guò)程與面向?qū)ο蠼Y(jié)合
實(shí)際本章體現(xiàn)了堆積木原則,也是利用三種常見(jiàn)的程序結(jié)構(gòu)(面向過(guò)程),而控件
的屬性、方法則完全是面向?qū)ο蟮乃枷搿?/p>
5.學(xué)生也很有創(chuàng)造力
實(shí)現(xiàn)ListBox多選刪除時(shí),岳曉同學(xué)與老師的思路不同,同樣可以完成刪除。
2006級(jí)岳曉同學(xué)的代碼:
for(inti=0;i<ListBoxl.Items.Count;i++)
if(ListBoxl.Items[i].Selected)
(
Response.Write(i+”<br>");
ListBoxl.Items.RemoveAt(i);
此處做了改進(jìn)
)
六、參考資料
《ASP.NET數(shù)據(jù)庫(kù)開(kāi)發(fā)入門與提高》(清華大學(xué)出版社)
《VisualC#2005編程實(shí)例精粹》(中國(guó)水利水電出版社)
《VisualC#.NET可視化程序設(shè)計(jì)》(清華大學(xué)出版社)
《ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)基礎(chǔ)教程(C#篇)》(清華大學(xué)出版社)
授課題目第3章驗(yàn)證控件
授課類型理論課+實(shí)驗(yàn)課
教學(xué)方法講授、實(shí)例驅(qū)動(dòng)教學(xué)手段多媒體教學(xué)
授課時(shí)間學(xué)時(shí)分配5
掌握表單驗(yàn)證控件、比較驗(yàn)證控件、范圍驗(yàn)證控件、正則驗(yàn)證控件、
教學(xué)目的自定義邏輯驗(yàn)證控件、驗(yàn)證組控件的使用。
框架知識(shí)
教學(xué)重點(diǎn)頁(yè)面創(chuàng)建
網(wǎng)站包括的基本要素
教學(xué)難點(diǎn)框架知識(shí)
其它
教學(xué)基本內(nèi)容
ASP.NET提供了強(qiáng)大的驗(yàn)證控件,它可以驗(yàn)證服務(wù)器控件中用戶的輸入,并在驗(yàn)
證失敗的情況下顯示一條自定義錯(cuò)誤消息。驗(yàn)證控件直接在客戶端執(zhí)行,用戶提交后
執(zhí)行相應(yīng)的驗(yàn)證無(wú)需使用服務(wù)器端進(jìn)行驗(yàn)證操作,從而減少了服務(wù)器與客戶端之間的
往返過(guò)程。
3.1表單驗(yàn)證控件(RequiredFieldValidator)
在實(shí)際的應(yīng)用中,如在用戶填寫表單時(shí),有一些項(xiàng)目是必填項(xiàng),例如用戶名和密碼。
在傳統(tǒng)的ASP中,當(dāng)用戶填寫表單后,頁(yè)面需要被發(fā)送到服務(wù)器并判斷表單中的某項(xiàng)
HTML控件的值是否為空,如果為空,則返回錯(cuò)誤信息。在ASP.NET中,系統(tǒng)提供了
RequiredFieldValidator驗(yàn)證控件進(jìn)行驗(yàn)證。使用RequiredFieldVaiidator控件能夠指定某
個(gè)用戶在特定的控件中必須提供相應(yīng)的信息,如果不填寫相應(yīng)的信息,
RequiredFieldValidator控件就會(huì)提示錯(cuò)誤信息,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>
在進(jìn)行驗(yàn)證時(shí),RequiredFieldValidator控件必須綁定一個(gè)服務(wù)器控件,在上述代碼中,
驗(yàn)證控件RequiredFieldValidator控件的服務(wù)器控件綁定為TextBoxl,當(dāng)TextBox1中的
值為空時(shí),則會(huì)提示自定義錯(cuò)誤信息“必填字段不能為空”,如圖3-53所示。
。無(wú)標(biāo)題頁(yè)-findovsInternetExplorer
-——3周|X|網(wǎng)L:二SewhP▼
收媒夾號(hào)無(wú)標(biāo)題頁(yè)||分▼&/?
T]
姓名:|必填字段不能
為空
密碼:|
Button|
_____________________.
I~廠|~廠街記—I?(呆護(hù)植式:鬃用|%125%▼/
圖3-53RequiredFieldValidator驗(yàn)證控件
當(dāng)姓名選項(xiàng)未填寫時(shí),會(huì)提示必填字段不能為空,并且該驗(yàn)證在客戶端執(zhí)行。當(dāng)發(fā)生
此錯(cuò)誤時(shí),用戶會(huì)立即看到該錯(cuò)誤提示而不會(huì)立即進(jìn)行頁(yè)面提交,當(dāng)用戶填寫完成并
再次單擊按鈕控件時(shí),頁(yè)面才會(huì)向服務(wù)器提交。
3.2比較驗(yàn)證控件(CompareValidator)
比較驗(yàn)證控件對(duì)照特定的數(shù)據(jù)類型來(lái)驗(yàn)證用戶的輸入。因?yàn)楫?dāng)用戶輸入用戶信息時(shí),
難免會(huì)輸入錯(cuò)誤信息“如當(dāng)需要了解用戶的生日時(shí),用戶很可能輸入了其他的字符串。
CompareValidator比較驗(yàn)證控件能夠比較控件中的值是否符合開(kāi)發(fā)人員的需要。
CompareValidator控件的特有屬性如下所示:
□ControlToCompare:以字符串形式輸入的表達(dá)式。要與另一控件的值進(jìn)行比較。
□Operator:耍使用的比較。
□Type:要比較兩個(gè)值的數(shù)據(jù)類型。
□VaiueToCompare:以字符串形式輸入的表達(dá)式。
當(dāng)使用CompareValidator控件時(shí),可以方便的判斷用戶是否正確輸入,示例代碼如下
所示。
<body>
<formid="form1Hrunat=',server,,>
<div>
請(qǐng)輸入生日:
<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入格式錯(cuò)誤!請(qǐng)改正!"
Operator="GreaterThanM
Type="Dateu>
</asp:CompareValidator>
<br/>
<asp:ButtonID="Button1"runat=Hserver"Text="Button"/>
<br/>
</div>
</form>
</body>
上述代碼判斷TextBoxl的輸入的格式是否正確,當(dāng)輸入的格式錯(cuò)誤時(shí),會(huì)提示錯(cuò)誤,
如圖3-54所示。
圖3-54CompareValidator驗(yàn)證控件
CompareValidator驗(yàn)證控件不僅能夠驗(yàn)證輸入的格式是否正確,還可以驗(yàn)證兩個(gè)控件之
間的值是否相等。如果兩個(gè)控件之間的值不相等,CompareValidator驗(yàn)證控件同樣會(huì)將
自定義錯(cuò)誤信息呈現(xiàn)在用戶的客戶端瀏覽器中。
3.3范圍驗(yàn)證控件(RangeValidator)
范圍驗(yàn)證控件(RangeValidator)可以檢查用戶的輸入是否在指定的上限與下限之間。
通常情況下用于檢查數(shù)字、日期、貨幣等。范圍驗(yàn)證控件(RangeValidator)控件的常
用屬性如下所示。
□MinimumValue:指定有效范圍的最小值。
□MaximumValue:指定有效范圍的最大值。
□Type:指定要比較的值的數(shù)據(jù)類型。
通常情況下,為了控制用戶輸入的范圍,可以使用該控件。當(dāng)輸入用戶的生日時(shí),今
年是2011年,那么用戶就不應(yīng)該輸入2012年,同樣基本上沒(méi)有人的壽命會(huì)超過(guò)100,
所以對(duì)輸入的日期的下限也需要進(jìn)行規(guī)定,示例代碼如下所示。
<div>
請(qǐng)輸入生H:<asp:TextBoxID="TextBox1"runat=Mserver"></asp:TextBox>
<asp:RangeValidatorID=nRangeValidator1"runat=nserver"
ControlToValidate="TextBox1"ErrorMessage="超出規(guī)定范圍,請(qǐng)重新填寫"
MaximumValue="2012/1/1MMinimumValue=H1912/1/1'*Type="Date">
</asp:RangeValidator>
<br/>
<asp:ButtonID="Button1"runat='server,'Text="Button"/>
</div>
上述代碼將MinimumValue屬性值設(shè)置為1912/1/1,并能將MaximumValue的值設(shè)置為
2012/1/1,當(dāng)用戶的日期低于最小值或高于最高值時(shí),則提示錯(cuò)誤,如圖3-55所示。
圖3-55RangeValidator驗(yàn)證控件
注意:RangeValidator險(xiǎn)證控件在進(jìn)行控件的值的范圍的設(shè)定時(shí),其范圍不僅僅可
以是一個(gè)整數(shù)值,同樣還能夠是時(shí)間、日期等值。
3.4正則驗(yàn)證控件(RegularExpressionValidator)
在上述控件中,雖然能夠?qū)崿F(xiàn)一些驗(yàn)證,但是驗(yàn)證的能力是有限的,例如在驗(yàn)證的過(guò)
程中,只能驗(yàn)證是否是數(shù)字,或者是否是日期。也可能在驗(yàn)證時(shí),只能驗(yàn)證一定范圍
內(nèi)的數(shù)值,雖然這些控件提供了一些驗(yàn)證功能,但卻限制了開(kāi)發(fā)人員進(jìn)行自定義驗(yàn)證
和錯(cuò)誤信息的開(kāi)發(fā)。為實(shí)現(xiàn)一個(gè)驗(yàn)證,很可能需要多個(gè)控件同時(shí)搭配使用。
正則驗(yàn)證控件(RegularExpressionValidator)就解決了這個(gè)問(wèn)題,正則驗(yàn)證控件的功能
非常的強(qiáng)大,它用于確定輸入的控件的值是否與某個(gè)正則表達(dá)式所定義的模式相匹配,
如電子郵件、電話號(hào)碼以及序列號(hào)等。
正則驗(yàn)證控件(RegularExpressionValidator)常用的屬性是ValidationExpression,它用
來(lái)指定用于驗(yàn)證的輸入控件的正則表達(dá)式??蛻舳说恼齽t表達(dá)式驗(yàn)證語(yǔ)法和服務(wù)端的
正則表達(dá)式驗(yàn)證語(yǔ)法不同,因?yàn)樵诳蛻舳耸褂玫氖荍Sript正則表達(dá)式語(yǔ)法,而在服務(wù)
器端使用的是Regex類提供的正則表達(dá)式語(yǔ)法。使用正則表達(dá)式能夠?qū)崿F(xiàn)強(qiáng)大字符串
的匹配并驗(yàn)證用戶的輸入的格式是否正確,系統(tǒng)提供了一些常用的正則表達(dá)式,開(kāi)發(fā)
人員能夠選擇相應(yīng)的選項(xiàng)進(jìn)行規(guī)則篩選,如圖3-56所示。
圖3-56系統(tǒng)提供的正則表達(dá)式
當(dāng)選擇了正則表達(dá)式后,系統(tǒng)自動(dòng)生成的HTML代碼如下所示。
<asp:RegularExpressionValidatorID="RegularExpressionValidator1"runat="server"
ControlToValidate="TextBoxI"ErrorMessage=''正則不匹配,請(qǐng)重新輸入!”
ValidationExpression="\d{17}[\d|X]|\d{15}">
</asp:RegularExpressionValidator>
運(yùn)行后當(dāng)用戶單擊按鈕控件時(shí),如果輸入的信息與相應(yīng)的正則表達(dá)式不匹配,則會(huì)提
示錯(cuò)誤信息,如圖3-57所示。
圖3-57RegularExpressionValidator驗(yàn)證控件
同樣,開(kāi)發(fā)人員也可以自定義正則表達(dá)式來(lái)規(guī)范用戶的輸入。使用正則表達(dá)式能夠加
快驗(yàn)證速度并在字符串中快速匹配,而另一方面,使用正則表達(dá)式能夠減少?gòu)?fù)雜的應(yīng)
用程序的功能開(kāi)發(fā)和實(shí)現(xiàn)。
注意:在用戶輸入為空時(shí),其他的驗(yàn)證控件都會(huì)驗(yàn)證通過(guò)。所以,在驗(yàn)證控件的
使用中,通常需要同表單臉證控件(RequiredFieklValidator)一起使用。
3.5自定義邏輯驗(yàn)證控件(CustomValidator)
自定義邏輯驗(yàn)證控件(CustomValidator)允許使用自定義的驗(yàn)證邏輯創(chuàng)建驗(yàn)證控件。例
如,可以創(chuàng)建一個(gè)驗(yàn)證控件判斷用戶輸入的是否包含號(hào),示例代碼如下所示。
protectedvoidCustomValidator1_ServerValidate(objectsource,
ServerValidateEventArgsargs)
{
args.lsValid=args.Value.ToString().Contains("J);〃設(shè)置驗(yàn)證程序,并
返回布爾值
protectedvoidButton1_Click(objectsender,EventArgse)//用戶自定義驗(yàn)證
{
if(Page.lsValid)〃判斷是否驗(yàn)證通
過(guò)
(
Labeh.Text="驗(yàn)證通過(guò)";//輸出驗(yàn)證通過(guò)
else
{
Labeh.Text="輸入格式錯(cuò)誤”;〃提交失敗信息
)
)
上述代碼不僅使用了驗(yàn)證控件自身的驗(yàn)證,也使用了用戶自定義驗(yàn)證,運(yùn)行結(jié)果如圖
3-58所示。
Q無(wú)標(biāo)鷺頁(yè)-YindovsInternetExplorer
▼|^g'f''/loc.三]園勿iXgveSearchP,
收藏夾卷無(wú)標(biāo)題頁(yè)||杭?國(guó),二卷,頁(yè)面(PA安全6),”
一□
請(qǐng)輸入浮點(diǎn)型:[77884U輸入格式錯(cuò)
誤
輸入格式錯(cuò)誤!請(qǐng)重新輸入!
Button|
,d
廠廠廠廠廠廠廠底五不.|保護(hù)植式:赫用?1升,/
圖3-58CustomValidator驗(yàn)證控件
從CustomValidator驗(yàn)證控件的驗(yàn)證代碼可以看出,CustomValidator驗(yàn)證控件可以在服
務(wù)器上執(zhí)行驗(yàn)證檢查。如果要?jiǎng)?chuàng)建服務(wù)器端的驗(yàn)證函數(shù),則處理CustomValidator控件
的ServerValidate事件。使用傳入的ServerValidateEventArgs的對(duì)象的IsVaiid字段來(lái)設(shè)
置是否通過(guò)驗(yàn)證。
而CustomValidator控件同樣也可以在客戶端實(shí)現(xiàn),該驗(yàn)證函數(shù)可用VBScript或Jscript
來(lái)實(shí)現(xiàn),而在CustomValidator控件中需要使用ClientValidationFunction屬性指定與
CustomValidator控件相關(guān)的客戶端驗(yàn)證腳本的函數(shù)名稱進(jìn)行控件中的值的驗(yàn)證。
3.6驗(yàn)證組控件(ValidationSummary)
驗(yàn)證組控件(ValidationSummary)能夠?qū)ν豁?yè)面的多個(gè)控件進(jìn)行驗(yàn)證。同時(shí),驗(yàn)證
組控件(ValidationSummary)通過(guò)ErrorMessage屬性為頁(yè)面上的每個(gè)驗(yàn)證控件顯式錯(cuò)
誤信息、。驗(yàn)證組控件(ValidationSummary)的常用屬性如下所示。
□DisplayMode:摘要可顯示為列表,項(xiàng)目符號(hào)列表或單個(gè)段落。
□HeaderText:標(biāo)題部分指定一個(gè)自定義標(biāo)題。
□ShowMessageBox:是否在消息框中顯示摘要。
□ShowSummary:控制是顯示還是隱藏ValidationSummary控件。
驗(yàn)證控件能夠顯示頁(yè)面的多個(gè)控件產(chǎn)生的錯(cuò)誤,示例代碼如下所示。
<body>
<formid="form1'*runat="server',>
<div>
姓名:
<asp:TextBoxID="TextBox1"runat="serverH></asp:TextBox>
<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat=nserver"
ControlToValidate='*TextBox1"ErrorMessage="姓名為必填項(xiàng)",
</asp:RequiredFieldValidator>
<br/>
身份證:
<asp:TextBoxID="TextBox2"runat="serverHx/asp:TextBox>
<asp:RegularExpressionValidatorID="RegularExpressionValidator1"runat="server"
ControlToValidate=',TextBox1"ErrorMessage="身份證號(hào)碼錯(cuò)誤”
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>
運(yùn)行結(jié)果如圖3-59所示。
圖3-59Validationsummary驗(yàn)證控件
當(dāng)有多個(gè)錯(cuò)誤發(fā)生時(shí),Validationsummary控件能夠捕獲多個(gè)驗(yàn)證錯(cuò)誤并呈現(xiàn)給用戶,
這樣就避免了一個(gè)表單需要多個(gè)驗(yàn)證時(shí)需要使用多個(gè)驗(yàn)證控件進(jìn)行綁定,使用
ValidationSummary控件就無(wú)需為每個(gè)需要驗(yàn)證的控件進(jìn)行綁定。
授課題目第4章常用的內(nèi)置對(duì)象
授課類型理論課+實(shí)驗(yàn)課
教學(xué)方法講授、實(shí)例驅(qū)動(dòng)教學(xué)手段多媒體教學(xué)
授課時(shí)間學(xué)時(shí)分配10
通過(guò)本次課程的學(xué)習(xí),主要掌握以下內(nèi)置對(duì)象的用法:
5.1Response對(duì)象
5.2Server對(duì)象
教學(xué)目的
5.3Session對(duì)象
5.4Application對(duì)象
5.5Request對(duì)象
Respon
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025農(nóng)村回遷房買賣合同(含稅費(fèi)處理)
- 2025年度養(yǎng)豬場(chǎng)養(yǎng)殖環(huán)境優(yōu)化與改造合同3篇
- 二零二五年度借調(diào)人員工作培訓(xùn)與職業(yè)成長(zhǎng)協(xié)議3篇
- 二零二五年度教育培訓(xùn)機(jī)構(gòu)教師聘用與教學(xué)質(zhì)量監(jiān)控合同2篇
- 二零二五年度子女對(duì)父母贍養(yǎng)與老年旅游服務(wù)合同3篇
- 二零二五年度國(guó)際能源資源勘探開(kāi)發(fā)合同3篇
- 2025年度養(yǎng)豬場(chǎng)產(chǎn)業(yè)鏈上下游供應(yīng)鏈合作合同3篇
- 二零二五年度企業(yè)勞動(dòng)合同解除與員工離職經(jīng)濟(jì)補(bǔ)償及離職證明協(xié)議3篇
- 2025年度口腔醫(yī)院與醫(yī)療器械制造商戰(zhàn)略合作合同3篇
- 2025年度美國(guó)大學(xué)本科預(yù)科班入學(xué)合同3篇
- 大學(xué)英語(yǔ)四級(jí)閱讀理解精讀100篇
- 《活法》名著分享讀書分享會(huì)ppt
- 回轉(zhuǎn)工作臺(tái)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 2022年臺(tái)州學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)《計(jì)算機(jī)組成原理》科目期末試卷A(有答案)
- 人工開(kāi)挖土方施工方案
- 昆明市公交集團(tuán)車載視頻監(jiān)控平臺(tái)升級(jí)方案20191025
- 一流課程申報(bào)
- 高中體育特長(zhǎng)生名校報(bào)考路徑分析課件
- 主要建筑材料碳排放因子查詢表
- 建筑施工室內(nèi)裝飾設(shè)計(jì)施工圖講解
- 冠寓運(yùn)營(yíng)管理手冊(cè)
評(píng)論
0/150
提交評(píng)論