第4章-ASP服務(wù)器控件_第1頁(yè)
第4章-ASP服務(wù)器控件_第2頁(yè)
第4章-ASP服務(wù)器控件_第3頁(yè)
第4章-ASP服務(wù)器控件_第4頁(yè)
第4章-ASP服務(wù)器控件_第5頁(yè)
已閱讀5頁(yè),還剩86頁(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)介

第4章

ASP.NET服務(wù)器控件內(nèi)容服務(wù)器控件概述HTML服務(wù)器控件Web服務(wù)器控件驗(yàn)證控件用戶控件4.1服務(wù)器控件概述ASP.NET服務(wù)器控件可以分為如下幾類:HTML服務(wù)器控件:提供了對(duì)標(biāo)準(zhǔn)HTML元素的類封裝,在HTML控件中添加一個(gè)在服務(wù)器端運(yùn)行的屬性,即可以由通用的客戶端HTML控件轉(zhuǎn)變?yōu)榉?wù)器端HTML控件,使開(kāi)發(fā)人員可以對(duì)其進(jìn)行編程。Web服務(wù)器控件:比HTML服務(wù)器控件具有更多功能。Web服務(wù)器控件不僅包括窗體控件(例如按鈕和文本框),而且還包括特殊用途的控件(例如日歷、菜單和樹(shù)視圖控件)。Web服務(wù)器控件與HTML服務(wù)器控件相比更為抽象,因?yàn)槠鋵?duì)象模型不一定反映HTML語(yǔ)法。驗(yàn)證控件:這些控件可以使開(kāi)發(fā)人員更容易對(duì)一些控件中的數(shù)據(jù)進(jìn)行驗(yàn)證。如驗(yàn)證控件可用于對(duì)必填字段進(jìn)行檢查,對(duì)照字符的特定值或模式進(jìn)行測(cè)試,驗(yàn)證某個(gè)值是否在限定范圍之內(nèi)等。導(dǎo)航控件:這些控件被設(shè)計(jì)用于顯示站點(diǎn)地圖,允許用戶從一個(gè)網(wǎng)頁(yè)導(dǎo)航到另一個(gè)網(wǎng)頁(yè),如Menu控件、SiteMapPath控件等。數(shù)據(jù)控件:用于顯示大量數(shù)據(jù)的控件,如GridView、ListView控件等,這些控件支持很多高級(jí)的定制功能,比如模板、允許添加、刪除、編輯等。數(shù)據(jù)控件還包括數(shù)據(jù)源控件,如SqlDataSource、LinqDataSource控件等。使開(kāi)發(fā)人員能夠使用聲明的方式綁定到不同類型的數(shù)據(jù)源,簡(jiǎn)化數(shù)據(jù)綁定的過(guò)程。登錄控件:簡(jiǎn)化創(chuàng)建用戶登錄頁(yè)面的過(guò)程,使開(kāi)發(fā)人員更容易編寫(xiě)用戶授權(quán)和管理的程序。WebParts控件:WebParts是ASP.NET中用于構(gòu)建組件化的、高度可配置的Web門(mén)戶的一套ASP.NET編程控件。ASP.NETAJAX控件:允許開(kāi)發(fā)人員在Web應(yīng)用程序中使用AJAX技術(shù),而不需要編寫(xiě)大量的客戶端代碼。4.2HTML服務(wù)器控件HTML服務(wù)器控件概述

HTML服務(wù)器控件綜合示例

4.2.1HTML服務(wù)器控件概述1.HTML服務(wù)器控件的基本語(yǔ)法

傳統(tǒng)的HTML元素是不能被ASP.NET服務(wù)器端直接使用的,但是通過(guò)將這些HTML元素的功能進(jìn)行服務(wù)器端的封裝,開(kāi)發(fā)人員就可以在服務(wù)器端使用這些HTML元素。在VisualStudio2010集成開(kāi)發(fā)環(huán)境中,從工具箱的“HTML”選項(xiàng)中拖放一個(gè)Input(submit)按鈕控件到設(shè)計(jì)頁(yè)面上,切換到源視圖,Input(submit)的HTML源代碼標(biāo)記如下: <inputid="Submit1"type="submit"value="submit"/>在標(biāo)記中直接添加runat="server",可以將HTML控件轉(zhuǎn)化為HTML服務(wù)器控件。設(shè)置為服務(wù)器控件后,源代碼標(biāo)記如下: <inputid="Submit1"type="submit"value="submit"runat="server"/>id用來(lái)設(shè)置控件的名稱,在一個(gè)程序中各控件的id均不相同,具有唯一性。id屬性允許以編程方式引用該控件。runat="server"表示作為服務(wù)器控件運(yùn)行。2.HTML控件的類型

HTML控件位于System.Web.UI.HtmlControls命名空間中,從HtmlControl基類中直接或間接派生出來(lái)的,包含二十多個(gè)HTML控件。 1、輸入控件 2、文本區(qū)域控件 3、表格控件 4、Image控件 5、選擇控件 6、水平線控件 7、Div容器控件3.HTML服務(wù)器控件的公共屬性

4.HTML服務(wù)器控件的事件

HTML服務(wù)器控件不僅可以添加客戶端事件代碼,而且可以添加服務(wù)器端事件代碼?!纠?-1】演示如何為HtmlInputSubmit控件的事件添加方法。HTML控件的常見(jiàn)客戶端事件4.2.2HTML服務(wù)器控件綜合示例【例4-2】演示如何使用HTML服務(wù)器端控件制作一個(gè)圖片瀏覽器。4.3Web服務(wù)器控件Web服務(wù)器控件概述常用Web服務(wù)器控件4.3.1Web服務(wù)器控件概述1.Web服務(wù)器控件基本語(yǔ)法從左邊工具箱中拖放一個(gè)Web服務(wù)器控件到頁(yè)面上,其HTML源代碼標(biāo)記如下:<asp:控件名ID="控件名稱"runat="server"屬性1="值"屬性2="值"…/>或者:<asp:控件名ID="控件名稱"runat="server"屬性1="值"屬性2="值"…></asp:控件名>如Button控件,基本語(yǔ)法為:<asp:Buttonid="Button2"runat="server"Text="Button"/>將控件添加到Web窗體中,有3種方法。方法1:從工具箱中添加控件。方法2:在源視圖中,直接添加控件聲明代碼。方法3:以編程方式動(dòng)態(tài)創(chuàng)建Web服務(wù)器控件。2.Web服務(wù)器控件的公共屬性控件屬性的設(shè)置有兩種方法:方法1:設(shè)計(jì)時(shí)通過(guò)屬性窗設(shè)置控件的屬性。方法2:運(yùn)行時(shí)以編程方式設(shè)置控件的屬性。3.Web服務(wù)器控件的客戶端事件向ASP.NET服務(wù)器控件添加客戶端事件的3種方法:方法1:以聲明方式向ASP.NET服務(wù)器控件添加客戶端事件處理程序在源視圖中,為控件直接添加事件屬性。例如,onmouseover或onkeyup。針對(duì)不同屬性添加要執(zhí)行的客戶端腳本?!纠?-3】演示一個(gè)包含客戶端腳本的ASP.NET網(wǎng)頁(yè),當(dāng)用戶將鼠標(biāo)移到按鈕上方時(shí),此腳本就會(huì)更改該按鈕的文本顏色。方法2:以編程方式向ASP.NET控件添加客戶端事件處理程序。在頁(yè)面的Init或Load事件中調(diào)用控件的Attributes集合的Add方法來(lái)動(dòng)態(tài)添加客戶端事件處理程序?!纠?-4】演示如何動(dòng)態(tài)地向TextBox控件添加客戶端腳本。該客戶端腳本顯示TextBox控件中的文本長(zhǎng)度。方法3:向按鈕控件添加客戶端Onclick事件。在按鈕控件(Button、LinkButton和ImageButton控件)中,要添加客戶端Onclick事件,可以在設(shè)計(jì)視圖中將按鈕控件的OnClientClick屬性設(shè)置為要執(zhí)行的客戶端腳本,也可以在源視圖中直接添加OnClientClick屬性?!纠?-5】演示如何向Button控件添加客戶端Click事件。4.Web服務(wù)器控件的服務(wù)器端事件添加服務(wù)器端事件的2種方法。方法1:設(shè)計(jì)時(shí)在屬性窗中添加事件處理。方法2:運(yùn)行時(shí)以編程方式動(dòng)態(tài)添加事件處理。例如:protectedvoidButton1_Click(objectsender,EventArgse){}然后,將該方法和控件的單擊事件關(guān)聯(lián),代碼如下:Button1.Click+=newEventHandler(Button1_Click);4.3.2常用Web服務(wù)器控件1.Label控件:用于在網(wǎng)頁(yè)上顯示文本。聲明Label的語(yǔ)法格式:<asp:LabelID="控件名"runat="server"Text="文本"></asp:Label>Label控件只能用來(lái)顯示文本,它只有Text屬性,用來(lái)獲取或設(shè)置指定在Label控件上顯示的文字。2.TextBox控件TextBox控件可用于制作單行、多行文本框和密碼框。聲明TextBox控件的語(yǔ)法格式:<asp:TextBoxID="控件名"runat="server"></asp:TextBox>TextBox控件本身特有的屬性:AutoPostBack屬性:獲取或設(shè)置當(dāng)TextBox控件上的內(nèi)容發(fā)生改變時(shí),是否自動(dòng)將窗體數(shù)據(jù)回傳到服務(wù)器,默認(rèn)為False,不回傳;為T(mén)rue時(shí),則要回傳。該屬性要與TextChanged事件配合使用。MaxLenth屬性:獲取或設(shè)置文本框中最多允許的字符數(shù)。當(dāng)TextMode屬性設(shè)為MultiLine時(shí),此屬性不可用。ReadOnly屬性:獲取或設(shè)置TextBox控件是否為只讀。當(dāng)該屬性設(shè)置為T(mén)rue時(shí),將禁止用戶輸入或更改現(xiàn)有值。默認(rèn)值為False。Text屬性:獲取或設(shè)置文本框的文本內(nèi)容。TextMode屬性:獲取或設(shè)置文本框的類型。TextBox有3種取值:MultiLine為多行輸入模式;Password為密碼輸入模式;SingleLine為單行輸入模式。默認(rèn)值為SingleLine。TextBox主要的服務(wù)器端事件是TextChanged事件。當(dāng)Text屬性的值改變時(shí),會(huì)觸發(fā)此事件。當(dāng)AutoPostBack屬性設(shè)置為T(mén)rue時(shí),用戶更改文本框的內(nèi)容并將焦點(diǎn)移開(kāi)文本框時(shí),將自動(dòng)回傳頁(yè)面并觸發(fā)TextChanged事件。當(dāng)AutoPostBack屬性設(shè)置為False時(shí),即便用戶更改文本框的內(nèi)容并將焦點(diǎn)移開(kāi)文本框,也不會(huì)自動(dòng)回傳頁(yè)面,需等到回傳頁(yè)面的事件發(fā)生時(shí)(如按鈕控件的Click事件),才會(huì)觸發(fā)TextChanged事件。

【例4-6】演示如何將TextBox控件的AutoPostBack屬性與TextChanged事件配合使用。超鏈接(HyperLink)控件用于創(chuàng)建文本或圖片超鏈接。聲明HyperLink控件的語(yǔ)法格式:<asp:HyperLinkID="控件名"runat="server"></asp:HyperLink>HyperLink控件的主要屬性如下:ImageURL屬性:獲取或設(shè)置HyperLink控件的圖片來(lái)源。NavigateURL屬性:獲取或設(shè)置HyperLink控件所要鏈接到的URL。Target屬性:獲取或設(shè)置單擊HyperLink控件時(shí)顯示鏈接到的網(wǎng)頁(yè)內(nèi)容的目標(biāo)窗口或框架。

Text屬性:獲取或設(shè)置HyperLink控件的超鏈接文本?!纠?-7】演示如何設(shè)置Target屬性來(lái)指定窗口或框架,用以顯示與HyperLink控件關(guān)聯(lián)的頁(yè)。3.HyperLink控件4.Image控件Image控件只是簡(jiǎn)單地完成一個(gè)圖像顯示任務(wù),與HTML的Image功能相同。聲明Image控件的語(yǔ)法格式為:<asp:ImageID="控件名"runat="server"></asp:Image>該控件的屬性:AlternateText屬性:設(shè)置圖像無(wú)法顯示時(shí)顯示的替換文字。ImageUrl屬性:設(shè)置圖像所在的位置。ToolTip屬性:將鼠標(biāo)放置在圖片控件上時(shí),顯示的工具提示。注意:Image控件不響應(yīng)用戶事件,但是它可以根據(jù)其它控件的輸入動(dòng)態(tài)地顯示圖片。5.Button、LinkButton和ImageButton控件

ASP.NET包含3類用于向服務(wù)器端提交表單的控件:Button、LinkButton和ImageButton。這3類控件擁有同樣的功能,但每類控件的外觀截然不同。特殊屬性:CommandArgument:用于指定傳給Command事件的命令參數(shù)。CommandName:指定傳給Command事件的命令名。OnClientClick:指定點(diǎn)擊按鈕時(shí)執(zhí)行的客戶端腳本。PostBackUrl:?jiǎn)螕舭粹o時(shí)所發(fā)送到的URL。Text:將在按鈕上呈現(xiàn)的文本。UseSubmitBehavior:指示按鈕是否呈現(xiàn)為提交按鈕。Button控件支持Focus()方法,用于把焦點(diǎn)設(shè)為該Button控件。Button控件還支持下面兩個(gè)事件:Click:點(diǎn)擊Button控件時(shí)引發(fā)。Command:點(diǎn)擊Button控件時(shí)引發(fā)。CommandName和CommandArgument的值傳給這個(gè)事件。聲明Button控件的語(yǔ)法格式:<asp:ButtonID="控件名"runat="server"Text="按鈕上的文字"></asp:Button>【例4-8】在頁(yè)面上包含一個(gè)Button控件,點(diǎn)擊該Button控件,將在Label控件中顯示系統(tǒng)日期。聲明LinkButton控件的語(yǔ)法格式為:<asp:LinkButtonID="控件名"runat="server">按鈕上的文字</asp:LinkButton>【例4-9】在頁(yè)面上包含一個(gè)LinkButton控件,點(diǎn)擊該LinkButton控件,將在Label控件中顯示系統(tǒng)日期。ImageButton控件是以圖片的形式提供的按鈕控件,功能與Button相同,外觀與Image控件相同。聲明ImageButton控件的語(yǔ)法格式為:<asp:ImageButtonID="控件名"runat="server"></asp:ImageButton>【例4-10】在頁(yè)面中包含一個(gè)ImageButton和一個(gè)Label控件,點(diǎn)擊該ImageButton上的圖片,將在Label控件中顯示點(diǎn)擊的位置?!纠?-11】演示如何用一個(gè)事件方法統(tǒng)一處理多個(gè)按鈕的提交事件。DropDownList控件允許用戶從預(yù)定義的下拉列表中選擇一項(xiàng)。聲明DropDownList控件的語(yǔ)法格式為:<asp:DropDownListID="控件名"runat="server"> <asp:ListItemValue="">Text</asp:ListItem> …</asp:DropDownList>6.DropDownList和ListBox控件DropDownList控件的主要屬性如下:AutoPostBack屬性:獲取或設(shè)置當(dāng)改變DropDownList控件的選擇狀態(tài)時(shí),是否自動(dòng)上傳窗體數(shù)據(jù)到服務(wù)器。默認(rèn)為False。Items屬性:包含該控件所有選項(xiàng)的集合。每個(gè)列表項(xiàng)都是一個(gè)單獨(dú)的對(duì)象,具有自己的屬性。SelectedIndex屬性:獲取當(dāng)前選擇項(xiàng)的下標(biāo)(下標(biāo)從0開(kāi)始)。SelectedItem屬性:獲取當(dāng)前選擇項(xiàng)對(duì)象。DropDownList控件有SelectedIndexChanged事件,當(dāng)用戶選擇一項(xiàng)時(shí),DropDownList控件將引發(fā)SelectedIndexChanged事件。默認(rèn)情況下,此事件不會(huì)導(dǎo)致向服務(wù)器發(fā)送頁(yè)面,但當(dāng)該控件的AutoPostBack屬性設(shè)置為T(mén)rue時(shí),該事件會(huì)立即回發(fā)頁(yè)面?!纠?-12】演示DropDownList控件的使用。ListBox控件與DropDownList控件的功能基本相似,ListBox控件將所有選項(xiàng)都顯示出來(lái),提供單選或多選的列表框。ListBox控件比DropDownList控件多兩個(gè)屬性:Rows屬性:獲取或設(shè)置ListBox控件顯示的選項(xiàng)行數(shù),默認(rèn)值為4。SelectionMode屬性:獲取或設(shè)置ListBox控件的選項(xiàng)模式,Single為單選,Multiple為多選,默認(rèn)為Single。當(dāng)允許多選時(shí),只需按住Ctrl鍵或Shift鍵并單擊要選取的選項(xiàng),便可完成多選。【例4-13】演示ListBox控件的使用。CheckBox控件用于創(chuàng)建單個(gè)復(fù)選框,供用戶選擇。聲明CheckBox控件的語(yǔ)法格式:<asp:CheckBoxID="控件名"runat="server"Text="控件的文字"value=""/>CheckBox控件的常用屬性:Checked屬性:獲取或設(shè)置該項(xiàng)是否選中。TextAlign屬性:控件文字的位置。Text屬性:獲取或設(shè)置CheckBox控件的文本內(nèi)容。Value屬性:獲取或設(shè)置CheckBox控件的值內(nèi)容。7.CheckBox和CheckBoxList控件AutoPostBack屬性:獲取或設(shè)置當(dāng)改變CheckBox控件的選擇狀態(tài)時(shí),是否自動(dòng)回傳窗體數(shù)據(jù)到服務(wù)器。值為T(mén)rue時(shí),表示單擊CheckBox控件,頁(yè)面自動(dòng)回發(fā);值為False時(shí),不回發(fā)。默認(rèn)值為False。CheckBox控件具有CheckedChanged事件。當(dāng)Checked屬性的值改變時(shí),會(huì)觸發(fā)此事件。與TextBox控件類似,該事件要與AutoPostBack屬性配合使用。【例4-14】演示CheckBox控件的使用。聲明CheckBoxList控件的語(yǔ)法格式:<asp:CheckBoxListID="控件名"Runat="server"> <asp:ListItemvalue="">text</asp:ListItem> ……</asp:CheckedBoxList>該控件的屬性、用法及功能與ListBox控件基本相同。除此之外,還有自己的特殊屬性。RepeatDirection:表示是橫向還是縱向排列。RepeatColumns:一行排幾列。TextAlign屬性:控件文字的位置。Selected屬性:表示該選項(xiàng)是否選中。【例4-15】使用CheckBoxList控件完成【例4-14】的功能。RadioButton控件用于創(chuàng)建單個(gè)單選框,供用戶選擇。聲明RadioButton控件的語(yǔ)法格式:<asp:RadioButtonID="控件名"runat="server"text="控件的文字"value=""/>RadioButton控件的常用屬性和事件與CheckBox控件基本相同。RadioButton控件還有一個(gè)特殊的屬性GroupName,用于設(shè)置單選按鈕所屬的組名,通過(guò)將多個(gè)單選按鈕的組名設(shè)為相同值,將其分為一組相互排斥的選項(xiàng)。【例4-16】演示RadioButton控件的使用。8.RadioButton和RadioButtonList控件與CheckBoxList控件類似,RadioButtonList控件是一個(gè)RadioButton控件組,當(dāng)存在多個(gè)單選框時(shí),用該控件比RadioButton簡(jiǎn)單。聲明RadioButtonList控件的語(yǔ)法格式:<asp:RadioButtonListID="控件名"runat="server"> <asp:ListItemValue="">Text</asp:ListItem> ……</asp:RadioButtonList>RadioButtonList控件和CheckBoxList控件的屬性和事件相同?!纠?-17】使用RadioButtonList控件完成【例4-16】的功能。Panel控件是一個(gè)放置其它控件的容器,可以在其內(nèi)放置不同控件。利用它的這個(gè)特性,可以將不同的控件組成一個(gè)群組,并控制它的顯示或隱藏。聲明Panel控件的語(yǔ)法格式: <asp:PanelID="控件名"runat="server"></asp:Panel>Panel控件的主要屬性:BackImageUrl屬性:設(shè)置Panel背景圖形。HorizontalAlign屬性:設(shè)置水平對(duì)齊方式。Visible屬性:是否顯示還是隱藏。ScrollBars屬性:是否設(shè)置水平或垂直滾動(dòng)條。例如,將該屬性設(shè)置為Auto時(shí),當(dāng)控件長(zhǎng)度和寬度超過(guò)Panel控件的長(zhǎng)或?qū)挄r(shí),將自動(dòng)顯示出滾動(dòng)條。9.Panel控件MultiView和View控件可以制作選項(xiàng)卡的效果,MultiView控件用作一個(gè)或多個(gè)View控件的外部容器。View控件又可包含標(biāo)記和控件的任何組合。切換到源視圖,控件聲明代碼如下:<asp:MultiViewID="MultiView1"runat="server"><asp:ViewID="View1"runat="server"></asp:View><asp:ViewID="View2"runat="server"></asp:View><asp:ViewID="View3"runat="server"></asp:View></asp:MultiView>10.MultiView和View控件MultiView控件的常用屬性、方法和事件:ActiveViewIndex屬性:用于獲取或設(shè)置當(dāng)前被激活顯示的View控件的索引值。默認(rèn)值為-1,表示沒(méi)有View控件被激活。SetActiveView方法:用于激活顯示特定的View控件。ActiveViewChanged事件:當(dāng)視圖切換時(shí)被激發(fā)。在MultiView控件中,一次只能將一個(gè)View控件定義為活動(dòng)視圖。如果某個(gè)View控件定義為活動(dòng)視圖,它所包含的子控件則會(huì)呈現(xiàn)到客戶端??梢允褂肕ultiView控件的ActiveViewIndex屬性或SetActiveView方法定義活動(dòng)視圖。如果ActiveViewIndex為-1,則MultiView控件不向客戶端呈現(xiàn)任何內(nèi)容。【例4-18】演示View和MultiView控件的使用。參見(jiàn)示例\第04章\WebControlDemo\MultiViewDemo.aspxCalendar控件用于創(chuàng)建日歷。在該控件上用戶可以方便準(zhǔn)確地輸入日期。聲明Calendar控件的語(yǔ)法格式:

<asp:CalendarID="控件名"runat="server"></asp:Calendar>與日期選取及設(shè)置的有關(guān)屬性:SelectionMode屬性:設(shè)置日期選擇模式,可設(shè)為Day(只能選擇某一天)、None(不能選擇日期,只能顯示日期)、DayWeek(可以選擇整星期或某天)、DayWeekMonth(可以選擇某月、某星期或某天)SelectedDate屬性:用戶選中的日期。SelectedDates屬性:用戶選擇的多個(gè)日期,是一個(gè)數(shù)組。Calendar控件具有SelectionChanged事件,當(dāng)用戶選擇日期時(shí),會(huì)驅(qū)動(dòng)該事件【例4-19】演示Calendar控件的使用。參見(jiàn)示例\第04章\WebControlDemo\CalendarDemo.aspx11.Calendar控件4.4驗(yàn)證控件驗(yàn)證控件概述驗(yàn)證控件的使用驗(yàn)證組的使用禁用驗(yàn)證以編程方式測(cè)試驗(yàn)證有效性4.4.1驗(yàn)證控件概述為什么要驗(yàn)證用戶輸入驗(yàn)證過(guò)程為什么要驗(yàn)證用戶輸入輸入驗(yàn)證是檢驗(yàn)Web窗體中用戶的輸入是否和期望的數(shù)據(jù)值、范圍或格式相匹配的過(guò)程,可以減少等待錯(cuò)誤信息的時(shí)間降低發(fā)生錯(cuò)誤的可能性,從而改善用戶訪問(wèn)Web站點(diǎn)的體驗(yàn)用戶輸入驗(yàn)證的目的減少錯(cuò)誤處理的等待時(shí)間避免非法的用戶輸入導(dǎo)致的錯(cuò)誤結(jié)果避免非法的用戶輸入導(dǎo)致服務(wù)器崩潰避免欺騙或惡意代碼阻止Web窗體進(jìn)行下一步處理,直到所有的用戶輸入都通過(guò)驗(yàn)證驗(yàn)證過(guò)程客戶端驗(yàn)證和服務(wù)器端驗(yàn)證的區(qū)別ASP.NET驗(yàn)證控件驗(yàn)證控件的共有屬性Display屬性:流布局模式下,設(shè)置多個(gè)驗(yàn)證控件的錯(cuò)誤信息的空間排列方式。DisplayNoneStaticDynamic顯示行為在驗(yàn)證控件的位置上不顯示錯(cuò)誤信息在頁(yè)面布局中分配用于顯示驗(yàn)證消息的空間如果驗(yàn)證成功,將不占據(jù)頁(yè)面空間均驗(yàn)證失敗第一個(gè)驗(yàn)證控件通過(guò)驗(yàn)證成功均驗(yàn)證失敗第一個(gè)驗(yàn)證控件通過(guò)驗(yàn)證成功Static顯示Dynamic顯示ErrorMessage屬性指定驗(yàn)證失敗后在驗(yàn)證控件中顯示的文本如果設(shè)置了Text屬性,不顯示ErrorMessageText屬性指定將在驗(yàn)證控件中顯示的文本ErrorMessage已設(shè)置已設(shè)置未設(shè)置Text未設(shè)置已設(shè)置已設(shè)置驗(yàn)證未通過(guò)的結(jié)果顯示ErrorMessage文本顯示Text文本顯示Text文本4.4.2驗(yàn)證控件的使用1、RequiredFieldValidator控件在頁(yè)中添加RequiredFieldValidator控件并將其鏈接到必需的控件,可以指定用戶在ASP.NET網(wǎng)頁(yè)上的特定控件中必須輸入信息【例4-20】演示如何驗(yàn)證用戶在文本框中已輸入數(shù)據(jù)。參見(jiàn)示例\第04章\WebValidator\RequiredFieldValidator.aspxInitialValue屬性:當(dāng)設(shè)置該值時(shí),表示控件中輸入該值時(shí)無(wú)效,其他任何情況均有效?!纠?-21】演示如何使用RequiredFieldValidator控件來(lái)驗(yàn)證DropDownList控件的輸入。參見(jiàn)示例\第04章\WebValidator\ShowInitialValue.aspx2、CompareValidator控件測(cè)試用戶的輸入是否符合指定的值或者符合另一個(gè)輸入控件的值??蛰斎胱鳛橛行?yàn)證。ControlToCompare:確定要比較的另一個(gè)控件。Operator:指定使用的比較運(yùn)算符。Type:指定數(shù)據(jù)類型,希望輸入控件中的值與某個(gè)數(shù)據(jù)類型匹配。ValueToCompare:確定要比較的某個(gè)常數(shù)值【例4-23】使用CompareValidator控件對(duì)數(shù)據(jù)進(jìn)行類型檢查。要求用戶輸入合法的日期,否則驗(yàn)證失敗。參見(jiàn)示例\第04章\WebValidator\CompareValidator.aspx【例4-22】在設(shè)計(jì)用戶注冊(cè)頁(yè)面時(shí),希望用戶輸入兩次密碼,使用CompareValidator驗(yàn)證控件來(lái)判斷兩次輸入的密碼是否相等。3、RangeValidator控件:驗(yàn)證輸入值是否在給定的范圍內(nèi)。輸入值介于最小值和最大值之間是有效的。空輸入作為有效驗(yàn)證。

MinimumValue:指定有效范圍的最小值。

MaxmumValue:指定有效范圍的最大值。Type:指定要比較的值的數(shù)據(jù)類型?!纠?-24】演示如何通過(guò)RangeValidator控件驗(yàn)證文本框中的年齡輸入在0~200之間。參見(jiàn)示例\第04章\WebValidator\RangeValidator.aspx4.RegularExpressionValidator控件在需要確定該值是否與某個(gè)正則表達(dá)式所定義的模式相匹配的情況下使用ValidationExpression屬性:編輯正則表達(dá)式VisualStudio.NET提供以下預(yù)定義模式電話號(hào)碼郵政編碼E-mail地址注意:提供的這些預(yù)定義的模式的正則表達(dá)式未必正確。正則表達(dá)式字符含意例如:\S{3,6} 3到6位字符[A-Za-z]{2,5} 由2-5個(gè)字母組成[A-Z]\d{5} 以一個(gè)大寫(xiě)字母開(kāi)頭,加5位數(shù)字 \d{5} 5位的整數(shù).*[@#&].* 至少包含@#&中的一個(gè)字符(\d{11})|((\d{3,4}-)?\d{7,8})

中國(guó)電話號(hào)碼(手機(jī)或固定電話) 【例4-25】演示如何使用預(yù)定義表達(dá)式來(lái)驗(yàn)證輸入的電子郵件地址。參見(jiàn)示例\第04章\WebValidator\RegularExpressionValidator.aspx【例4-26】演示如何使用自定義表達(dá)式驗(yàn)證輸入。如果要求用戶輸入一個(gè)以大寫(xiě)字母開(kāi)頭,再加5位阿拉伯?dāng)?shù)字的格式化數(shù)據(jù)。很顯然,預(yù)定義表達(dá)式里沒(méi)有這樣的格式定義只能通過(guò)正則表達(dá)式進(jìn)行自定義。按照上面的格式要求,該正則表達(dá)式應(yīng)該為“[A-Z]\d{5}”。5.CustomValidator控件必須手動(dòng)編寫(xiě)客戶端和服務(wù)器端驗(yàn)證代碼ClientValidationFunction屬性用于驗(yàn)證的自定義客戶端腳本函數(shù)的名稱ServerValidate

事件服務(wù)器端驗(yàn)證事件的名稱在驗(yàn)證函數(shù)中通過(guò)屬性Args.IsValid來(lái)設(shè)置CustomValidator控件是否有效。<asp:CustomValidator?ClientValidationFunction=“客戶端驗(yàn)證函數(shù)名"/>【例4-27】下面將編寫(xiě)一個(gè)CustomValidator控件的驗(yàn)證函數(shù)用來(lái)確定TextBox控件中用戶輸入是否超過(guò)8個(gè)字符。參見(jiàn)示例\第04章\WebValidator\CompareValidator.aspxCustomValidator靈活性高,可以與給定的公式比較與存儲(chǔ)在服務(wù)器中的數(shù)據(jù)比較,如存儲(chǔ)在數(shù)據(jù)庫(kù)中的密碼通過(guò)調(diào)用COM對(duì)象比較通過(guò)調(diào)用Web服務(wù)比較組合使用驗(yàn)證控件多個(gè)驗(yàn)證控件應(yīng)用于同一輸入控件各個(gè)驗(yàn)證控件的ControlToValidate屬性設(shè)為同一值只有RequiredFieldValidator檢查輸入控件的值是否為空值組合使用驗(yàn)證控件驗(yàn)證電話號(hào)碼的例子RequiredFieldValidator驗(yàn)證用戶輸入的值是否為空RegularExpressionValidator驗(yàn)證電話號(hào)碼是否符合給定格式6.ValidationSummary控件Page.IsValid返回False時(shí)顯示錯(cuò)誤信息在一個(gè)位置上匯總Web頁(yè)上所有驗(yàn)證控件的錯(cuò)誤信息HeaderText屬性:設(shè)置標(biāo)題DisplayMode屬性,有3個(gè)值可選:BulletList:項(xiàng)目符號(hào)列表顯示List:無(wú)符號(hào)列表顯示SingleParagraph:?jiǎn)蝹€(gè)段落顯示ShowMessageBox屬性:是否彈出一個(gè)錯(cuò)誤列表的對(duì)話框使用ValiationSummary控件時(shí),其他驗(yàn)證控件通常使用Text=“*”指示錯(cuò)誤出現(xiàn)的位置【例4-28】演示如何使用ValidationSummary控件顯示錯(cuò)誤信息摘要。參見(jiàn)示例\第04章\WebValidator\ValidationSummary.aspx4.4.3使用驗(yàn)證組在頁(yè)面上控件比較多時(shí),可以將不同的控件歸為一組,ASP.NET在對(duì)每個(gè)驗(yàn)證組進(jìn)行驗(yàn)證時(shí),與同頁(yè)的其他組無(wú)關(guān)通過(guò)將要分在同一組的所有控件的ValidationGroup屬性設(shè)置為同一個(gè)名稱(字符串)即可創(chuàng)建驗(yàn)證組【例4-29】演示在Button控件回發(fā)到服務(wù)器時(shí),如何使用ValidationGroup屬性指定要驗(yàn)證的控件。參見(jiàn)示例\第04章\WebValidator\ValidateGroup.aspx4.4.4禁用驗(yàn)證禁用驗(yàn)證的方法:設(shè)置ASP.NET服務(wù)器控件的屬性(CausesValidation="false")來(lái)避開(kāi)客戶端和服務(wù)器的驗(yàn)證,而不只是客戶端驗(yàn)證禁用驗(yàn)證控件,即將控件的屬性Enabled設(shè)置為false,使它根本不在頁(yè)面上呈現(xiàn)并且

溫馨提示

  • 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)論