ASP-NET教學(xué)設(shè)計(jì)教案-教程_第1頁(yè)
ASP-NET教學(xué)設(shè)計(jì)教案-教程_第2頁(yè)
ASP-NET教學(xué)設(shè)計(jì)教案-教程_第3頁(yè)
ASP-NET教學(xué)設(shè)計(jì)教案-教程_第4頁(yè)
ASP-NET教學(xué)設(shè)計(jì)教案-教程_第5頁(yè)
已閱讀5頁(yè),還剩170頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論