課件第4章3 5控件_第1頁(yè)
課件第4章3 5控件_第2頁(yè)
課件第4章3 5控件_第3頁(yè)
課件第4章3 5控件_第4頁(yè)
課件第4章3 5控件_第5頁(yè)
已閱讀5頁(yè),還剩84頁(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)介

1第4章ASP.NET3.5標(biāo)準(zhǔn)控件2本章要點(diǎn):理解ASP.NET3.5頁(yè)面事件處理流程了解HTML服務(wù)器控件熟悉ASP.NET3.5標(biāo)準(zhǔn)控件熟練掌握常用控件的使用3目錄4.1ASP.NET3.5頁(yè)面事件處理4.1.1ASP.NET3.5事件4.1.2屬性IsPostBack4.2ASP.NET3.5服務(wù)器控件概述4.2.1HTML服務(wù)器控件簡(jiǎn)介4.2.2Web服務(wù)器控件簡(jiǎn)介4目錄4.3標(biāo)準(zhǔn)控件4.3.1Label控件4.3.2TextBox控件4.3.3Button、LinkButton和ImageButton控件4.3.4DropDownList控件4.3.5ListBox控件4.3.6CheckBox和CheckBoxList控件4.3.7RadioButton和RadioButtonList控件4.3.8Image和ImageMap控件5目錄4.3.9HyperLink控件4.3.10Table控件4.3.11Panel和PlaceHolder控件4.3.12MultiView和View控件4.3.13Wizard控件4.4小結(jié)

64.1ASP.NET3.5頁(yè)面事件處理只有熟悉ASP.NET3.5頁(yè)面事件處理流程,才能理解代碼的執(zhí)行順序。74.1.1ASP.NET3.5事件常用頁(yè)面處理事件Page_PreInit:通過(guò)IsPostBack屬性確定是否第一次處理該頁(yè)、創(chuàng)建動(dòng)態(tài)控件、動(dòng)態(tài)設(shè)置主題屬性、讀取或設(shè)置配置文件屬性等。Page_Init:初始化頁(yè)面(控件屬性)Page_Load:讀取和加載,讀取和更新控件屬性??丶录禾幚硖囟ㄊ录?,如Button控件的Click事件。事件處理的先后順序Page_PreInit、Page_Init、Page_Load和控件的事件8Page_Init:是在頁(yè)面未加載之前,也就是在頁(yè)面初始化之前,在Page_Load之前調(diào)用的,可以在控件加載之前做一些操作。但這個(gè)事件對(duì)于當(dāng)前用戶來(lái)說(shuō),只會(huì)進(jìn)行一次,也就是第一次訪問(wèn)這個(gè)頁(yè)面的時(shí)候,其運(yùn)行一次。

Page_Load:在Page_Init之后運(yùn)行,用于加載控制以及頁(yè)面的其它內(nèi)容。客戶端每刷新或是提交一次,Page_Load事件就重新繪制頁(yè)面,將當(dāng)前頁(yè)面當(dāng)新頁(yè)面來(lái)處理。以下代碼可以用于驗(yàn)證這些事件的觸發(fā)順序:protectedvoidPage_Load(objectsender,EventArgse){LblDisp.Text+="Page_Load

<br>

";}protectedvoidPage_PreInit(objectsender,EventArgse){LblDisp.Text+="Page_PreInit

<br>";}protectedvoidPage_Init(objectsender,EventArgse){LblDisp.Text+="Page_Init

<br>";}94.1.1ASP.NET3.5事件(續(xù))Click事件被觸發(fā)時(shí)會(huì)引起頁(yè)面往返處理。Change事件被觸發(fā)時(shí),先將事件的信息暫時(shí)保存在客戶端的緩沖區(qū)中,等到下一次向服務(wù)器傳遞信息時(shí),再和其他信息一起發(fā)送給服務(wù)器。若要讓控件的Change事件立即得到服務(wù)器的響應(yīng),就需要將該控件的屬性AutoPostBack值設(shè)為true。10例題:運(yùn)行程序,頁(yè)面顯示后完成如下功能:初始時(shí)列表框顯示部分省,在文本框添加省信息且單擊“確定”按鈕后,可將省信息添加至列表框。114.1.2屬性IsPostBack

當(dāng)控件的事件被觸發(fā)時(shí),Page_Load事件會(huì)在控件的事件之前被觸發(fā)。如果想在執(zhí)行控件的事件代碼時(shí)不執(zhí)行Page_Load事件中的代碼,可以通過(guò)判斷屬性Page.IsPostBack實(shí)現(xiàn)。屬性IsPostBack在用戶第一次瀏覽網(wǎng)頁(yè)時(shí),會(huì)返回值false,否則返回值true。12基于請(qǐng)求/應(yīng)答的模式123HTML頁(yè)546HTML頁(yè)進(jìn)行更改回發(fā)之后的值13Page_Load事件在加載頁(yè)面時(shí)會(huì)觸發(fā)Page_Load事件ASP.NET將自動(dòng)調(diào)用Page_Load程序,并執(zhí)行其中的代碼privatevoidPage_Load(objectsender,System.EventArgse){

//頁(yè)面加載時(shí)執(zhí)行的代碼}從此處調(diào)用Page_Load事件只要加載頁(yè)面,就會(huì)執(zhí)行Page_Load事件內(nèi)的代碼14關(guān)于Page.IsPostBack屬性該屬性為邏輯值,指示當(dāng)前頁(yè)面是否為響應(yīng)客戶端回發(fā)而加載,或者頁(yè)面是否被首次加載。當(dāng)值為True時(shí),表示頁(yè)面是為響應(yīng)客戶端回發(fā)而加載,值為False時(shí),表示頁(yè)面為首次加載。Page.IsPostback屬性用于檢查頁(yè)面是否為首次加載如果

Page.IsPostBack屬性值為False,則此頁(yè)面為首次加載Page_Load事件中的某些代碼,要求只有在首次加載頁(yè)面時(shí)才執(zhí)行,可使用IsPostBack屬性實(shí)現(xiàn)。privatevoidPage_Load(objectsender,System.EventArgse){

if(!

IsPostBack)

{

//代碼

}}只有首次加載頁(yè)面,才會(huì)執(zhí)行此部分代碼154.2ASP.NET3.5服務(wù)器控件概述HTML服務(wù)器控件:常用于升級(jí)原有的ASP頁(yè)面到ASP.NET頁(yè)面。Web服務(wù)器控件:目前的ASP.NET3.5網(wǎng)站建設(shè)中,優(yōu)先考慮Web服務(wù)器控件。當(dāng)Web服務(wù)器控件無(wú)法完成特定的任務(wù)時(shí),可考慮HTML服務(wù)器控件。16

Html控件與Web控件最大的區(qū)別是它們對(duì)事件處理的方法不同。對(duì)于Html控件,當(dāng)引發(fā)一個(gè)事件時(shí),瀏覽器會(huì)處理它。但對(duì)于Web控件,事件僅由瀏覽器生成,但瀏覽器不會(huì)處理它,客戶端要給服務(wù)器發(fā)個(gè)信息,告訴服務(wù)器處理事件。有些事件,比如:按下鍵/移動(dòng)/鼠標(biāo)等事件,Asp.NET中沒(méi)有這些事件(因?yàn)檫@些事件即時(shí)性強(qiáng),服務(wù)器處理得不夠及時(shí)),這時(shí)候Html控件就發(fā)揮其作用了,結(jié)合Html事件協(xié)助完成。17如下是一些Html常用的事件:

在瀏覽器上執(zhí)行的Html控件事件:單擊時(shí)觸發(fā):

<INPUTtype="button"value="ClickMe"onclick="alert('Hi,你好!');">//懸浮在控件上方時(shí)觸發(fā)

<INPUTtype="button"value="ClickMe"onmouseover="alert('Hi,你好!');">18一、HTML控件和服務(wù)器端控件的概念

1.HTML控件

HTML控件在默認(rèn)情況下屬于客戶端(瀏覽器)控件,服務(wù)器無(wú)法對(duì)其進(jìn)行控制,只能在客戶端通過(guò)javascript和vbscript等腳本語(yǔ)言來(lái)控制

。HTML控件是從HTML標(biāo)記衍生而來(lái)的,每個(gè)控件對(duì)應(yīng)于一個(gè)或一組HTML標(biāo)記。例如,前面我們經(jīng)常使用的HTML表格控件,就是一個(gè)常用于頁(yè)面布局工具的HTML控件,如果不使用工具箱中的控件,而直接在源視圖中書寫相應(yīng)的HTML代碼也可以得到相同的效果,但使用控件可以節(jié)省大量的代碼書寫時(shí)間,且使操作變成了可視化的方式。192.HTML服務(wù)器控件簡(jiǎn)介實(shí)現(xiàn)了將XHTML元素到服務(wù)器控件的轉(zhuǎn)換。經(jīng)過(guò)轉(zhuǎn)換后,Web窗體頁(yè)就可訪問(wèn)XHTML元素(HTML服務(wù)器控件),從而實(shí)現(xiàn)在服務(wù)器端對(duì)HTML服務(wù)器控件的編程。添加屬性“runat="server"”將轉(zhuǎn)換XHTML元素到HTML服務(wù)器控件。 <inputid="Button2"type="button"value="button"/> <inputid="Button2"type="button"value="button"runat="server"/>203.服務(wù)器端控件在VisualStudio的工具箱中,只有“HTML”選項(xiàng)卡中的控件是客戶端控件(也稱為瀏覽器控件),其他所有控件都是Web服務(wù)器端控件。其中“標(biāo)準(zhǔn)”選項(xiàng)卡中的控件是最常用的控件。在類庫(kù)中,所有Web控件都是從System.Web.UI.Control.WebControls直接或間接派生而來(lái)的。21二、控件和頁(yè)面的執(zhí)行過(guò)程

1.服務(wù)器端控件的執(zhí)行過(guò)程當(dāng)用戶請(qǐng)求一個(gè)包含有Web服務(wù)器端控件的.aspx頁(yè)面時(shí),服務(wù)器首先對(duì)頁(yè)面進(jìn)行處理,將頁(yè)面中包含的服務(wù)端控件及其他內(nèi)容解釋成標(biāo)準(zhǔn)的HTML代碼,然后將處理結(jié)果以標(biāo)準(zhǔn)HTML的形式一次性發(fā)送給客戶端。

2.ASP.NET頁(yè)面的處理過(guò)程

當(dāng)用戶通過(guò)瀏覽器發(fā)出一個(gè)對(duì)ASP.NET頁(yè)面的請(qǐng)求后,Web服務(wù)器將用戶的請(qǐng)求交由ASP.NET引擎來(lái)處理。系統(tǒng)首先會(huì)檢查在服務(wù)器緩存中是否有該頁(yè)面,或此頁(yè)面是否已被編譯成了.dll文件(DynamicLinkLibrary,動(dòng)態(tài)鏈接庫(kù))。若沒(méi)有則將頁(yè)面轉(zhuǎn)換為源程序代碼,然后由編譯器將其編譯成.dll文件,否則直接利用已編譯過(guò)的.dll文件建立對(duì)象,并將執(zhí)行結(jié)果返回到客戶端瀏覽器。224.2.2Web服務(wù)器控件簡(jiǎn)介根據(jù)功能不同分成標(biāo)準(zhǔn)控件、數(shù)據(jù)控件、驗(yàn)證控件、導(dǎo)航控件、登錄控件、WebParts控件、AJAXExtensions控件和用戶自定義控件。

23Web服務(wù)器控件標(biāo)準(zhǔn)控件驗(yàn)證控件數(shù)據(jù)庫(kù)控件用戶控件文本輸入控件控制權(quán)轉(zhuǎn)移控件選擇控件容器控件其它專用控件244.3標(biāo)準(zhǔn)控件屬性名說(shuō)明屬性名說(shuō)明AccessKey控件的鍵盤快捷鍵Font控件的字體屬性Attributes控件的所有屬性集合Height控件的高度BackColor控件的背景色I(xiàn)D控件的編程標(biāo)識(shí)符BoderWidth控件的邊框?qū)挾萒abIndex控件的索引順序BoderStyle控件的邊框樣式Text控件上顯示的文本CssClass控件的CSS類名ToolTip當(dāng)鼠標(biāo)懸停在控件上時(shí)顯示的文本CssStyle控件的樣式Visible控件是否在Web頁(yè)上顯示Enabled是否啟用Web服務(wù)器控件Width控件的寬度254.3.1Label控件用于在瀏覽器上顯示文本,可以在服務(wù)器端動(dòng)態(tài)地修改文本。通過(guò)Text屬性指定控件顯示的內(nèi)容。定義的語(yǔ)法格式如下: <asp:LabelID="Label1"runat="server"Text="Label"></asp:Label>很實(shí)用的屬性AssociatedControlID:值可把Label控件與窗體中另一個(gè)服務(wù)器控件關(guān)聯(lián)起來(lái)。26實(shí)例4-2通過(guò)鍵盤快捷鍵激活特定文本框當(dāng)按下ALT+N時(shí),將激活用戶名右邊的文本框;當(dāng)按下ALT+P時(shí)將激活密碼右邊的文本框。源程序:Lable.aspx

274.3.2TextBox控件用于顯示數(shù)據(jù)或輸入數(shù)據(jù)。語(yǔ)法格式如下:

<asp:TextBoxID="TextBox1"runat="server"></asp:TextBox>

28

TextBox控件常用屬性、方法和事件表TextMode屬性值“SingleLine”表示單行文本框;值“Password”表示密碼框,將顯示特殊字符,如“*”;值“MultiLine”表示多行文本框。AutoPostBack屬性值“true”表示當(dāng)文本框內(nèi)容改變且把焦點(diǎn)移出文本框時(shí)觸發(fā)TextChanged事件,引起頁(yè)面往返處理。AutoCompleteType屬性標(biāo)注能自動(dòng)完成的類型,如Email表示能自動(dòng)完成郵件列表。Focus()方法設(shè)置文本框焦點(diǎn)。TextChanged事件當(dāng)改變文本框中內(nèi)容且焦點(diǎn)離開(kāi)文本框后觸發(fā)。29實(shí)例4-3控件TextBox綜合應(yīng)用當(dāng)頁(yè)面載入時(shí),焦點(diǎn)自動(dòng)定位在用戶名右邊的文本框中;當(dāng)輸入用戶名并把焦點(diǎn)移出文本框時(shí),將觸發(fā)TextChanged事件,判斷用戶名是否可用,若可用則在lblValidate中顯示“√”,否則顯示“用戶名已占用!”;密碼右邊的文本框顯示為密碼框;E-mail右邊的文本框具有自動(dòng)完成功能。源程序:TextBox.aspx

30程序說(shuō)明當(dāng)頁(yè)面載入時(shí),觸發(fā)Page_Load事件,將焦點(diǎn)定位在用戶名右邊的文本框中。本示例中用戶合法性判斷是與固定用戶名“jxssg”比較,實(shí)際使用需連接數(shù)據(jù)庫(kù),與數(shù)據(jù)庫(kù)中保存的用戶名比較。要看到自動(dòng)完成Email列表的效果,需先輸入E-mail并單擊確認(rèn)后再次輸入信息時(shí)才能看到效果。314.3.3Button、LinkButton和ImageButton控件

Button:傳統(tǒng)按鈕外觀。LinkButton:超鏈接外觀。ImageButton:圖形外觀,其圖像由ImageUrl屬性設(shè)置。

<asp:ButtonID="Button1"runat="server"Text="Button"/> <asp:LinkButtonID="LinkButton1"runat="server">LinkButton</asp:LinkButton> <asp:ImageButtonID="ImageButton1"runat="server"ImageUrl="~/pic/map.JPG"/>32按鈕控件實(shí)用屬性和事件PostBackUrl屬性:?jiǎn)螕舭粹o時(shí)發(fā)送到的URL。Click事件:當(dāng)單擊按鈕時(shí)被觸發(fā),執(zhí)行服務(wù)器端代碼。ClientClick事件:當(dāng)單擊按鈕時(shí)被觸發(fā),執(zhí)行客戶端代碼。333435控制轉(zhuǎn)移控件間的差異當(dāng)用戶點(diǎn)擊控件時(shí),HyperLink控件會(huì)立即將用戶“導(dǎo)航”到目標(biāo)URL,數(shù)據(jù)不會(huì)回送到服務(wù)器上。LinkButton控件則首先將數(shù)據(jù)發(fā)回到服務(wù)器,然后將用戶導(dǎo)航到目標(biāo)URL。如果在“到達(dá)”目標(biāo)URL之前需要進(jìn)行服務(wù)器端處理,則使用LinkButton控件;如果無(wú)需進(jìn)行服務(wù)器端處理,則可以使用HyperLink控件Button、LinkButton和ImageButton均響應(yīng)單擊事件36比較<a>與LinkButton兩者都能呈現(xiàn)超鏈接形式設(shè)置具體的跳轉(zhuǎn)方法不同。在<a>元素中通過(guò)屬性href設(shè)置,如:

<ahref="">鏈接到21世紀(jì)</a>

而在LinkButton中需要設(shè)置PostBackUrl屬性或在Click事件中輸入代碼,通過(guò)Response對(duì)象的重定向方法Redirect()實(shí)現(xiàn),如:

Response.Redirect("");37實(shí)例4-4利用Button控件執(zhí)行客戶端腳本要在單擊Button控件后執(zhí)行客戶端腳本,需要使用ClientClick事件和JavaScript。源程序:ClientClick.aspx程序說(shuō)明:當(dāng)單擊刪除按鈕時(shí),觸發(fā)ClientClick事件,執(zhí)行JavaScript代碼“returnconfirm('確定要?jiǎng)h除記錄嗎?')”,彈出確認(rèn)對(duì)話框。若單擊“確定”按鈕,觸發(fā)Click事件,執(zhí)行刪除操作(這里僅輸出信息,實(shí)際操作需連接數(shù)據(jù)庫(kù));若單擊“取消”,將不再觸發(fā)Click事件,運(yùn)行結(jié)束。

38ImageButton

ImageButton控件圖片按鈕控件可以在按鈕上顯示一副圖片,并代替按鈕控件的基本功能,不僅如此,圖片按鈕控件還可以方便的獲取圖片的點(diǎn)擊位置。使用ImageButton控件時(shí),要設(shè)置ImageUrl屬性和PostBackUrl屬性。39ImageButton控件

ImageButton控件圖片按鈕控件可以在按鈕上顯示一副圖片,并代替按鈕控件的基本功能,不僅如此,圖片按鈕控件還可以方便的獲取圖片的點(diǎn)擊位置。protectedvoidImageButton1_Click(objectsender,ImageClickEventArgse){

floatx=e.X;floaty=e.Y;if(y<=100)//200為圖片的高度

{

this.Label1.Text="你點(diǎn)擊的是上面的部分";

}

else{this.Label1.Text="你點(diǎn)擊的是下面的部分";

}}40Image和ImageMap控件Image控件和ImageMap控件都是用于圖片顯示的控件。

1.Image控件不支持任何用戶事件可以在設(shè)計(jì)時(shí)或運(yùn)行時(shí)以編程方式為其指定圖形文件;或通過(guò)屬性ImageUrl綁定圖片。如:this.Image1.ImageUrl=“~/images/1.jpg”;為本站點(diǎn)文件夾41Image和ImageMap控件2.ImageMap控件

利用ImageMap控件可以創(chuàng)建一個(gè)圖像,該圖像包含任意數(shù)目的,用戶可以單擊的區(qū)域,這些區(qū)域稱為“作用點(diǎn)”。每一個(gè)作用點(diǎn)都可以是一個(gè)單獨(dú)的超鏈接或回發(fā)事件。ImageMap控件與其他網(wǎng)頁(yè)編輯工具(如Dreamware)提供的“熱點(diǎn)地圖”功能類似。ImageMap控件主要由以下兩個(gè)部分組成:

1)顯示于控件中的圖像。它可是任何標(biāo)準(zhǔn)Web圖形格式的圖形,如*.gif、*.jpg或*.png文件,該圖像構(gòu)成用戶操作界面。

2)隱藏在圖像中的作用點(diǎn)集合。每個(gè)作用點(diǎn)控件都是一個(gè)不同的Web元素。對(duì)于每個(gè)作用點(diǎn)控件,需要定義其形狀(圓形、矩形或多邊形)以及用于指定作用點(diǎn)位置和大小的坐標(biāo)。例如,如果創(chuàng)建一個(gè)圓形作用點(diǎn),則應(yīng)定義圓心的x、y坐標(biāo)及圓的半徑。42ImageMap控件圖片地圖控件,可以在一副圖片中設(shè)置很多熱區(qū),當(dāng)用戶點(diǎn)擊不同熱區(qū)的時(shí)候會(huì)有不同的反應(yīng),既可以讓用戶通過(guò)點(diǎn)擊熱區(qū)跳轉(zhuǎn)到不同的URL也可以讓用戶通過(guò)點(diǎn)擊熱區(qū)運(yùn)行不同的服務(wù)器代碼。通過(guò)HotSpots屬性設(shè)置作用點(diǎn)集合通過(guò)ImageUrl屬性設(shè)置顯示圖片文件的名稱或Url43Image,ImageButton,ImageMapImageButton(圖像按鈕)、Image(圖像控件)和ImageMap(圖像地圖)三個(gè)控件只能在其中顯示圖片,一般不能顯示文字。其中,只有ImageMap控件可以通過(guò)設(shè)置熱點(diǎn)的Target來(lái)指定目標(biāo)框架。44選擇控件DropDownList與ListBoxCheckBox與CheckBoxListRadionButton與RadionButtonList45RadioButton和RadioButtonList控件(用于單選)

單選按鈕控件(RadioButton)AutoPostBack屬性當(dāng)單擊單選按鈕時(shí),是否自動(dòng)回發(fā)至服務(wù)器。46單選按鈕組控件(RadioButtonList)注意:判斷RadioButton是否選中使用Checked屬性,而獲取RadioButtonList的選中項(xiàng)使用屬性SelectedItem。47CheckBox和CheckBoxList控件若需要多項(xiàng)選擇,可以使用多個(gè)CheckBox或單個(gè)CheckBoxList,但一般采用CheckBoxList。48注意:判斷CheckBox是否選中的屬性是Checked,而CheckBoxList作為集合控件,判斷列表項(xiàng)是否選中的屬性是成員的Selected屬性。在實(shí)際工程項(xiàng)目中,一般設(shè)置CheckBoxList的屬性AutoPostBack值為false。要提交數(shù)據(jù)到服務(wù)器,不采用CheckBoxList的自身事件,而是常配合Button控件實(shí)現(xiàn)。49CheckBox和CheckBoxList控件

CheckBox(復(fù)選框)與CheckBoxList(復(fù)選框組)控件的作用十分相似,都是用于向用戶提供多選輸入數(shù)據(jù)的控件。用戶可以在控件提供的多個(gè)選項(xiàng)中選擇一個(gè)或多個(gè)。被選中的對(duì)象中帶有一個(gè)“√”標(biāo)記,CheckBox和CheckList控件的外觀如圖所示。獲取CheckBoxList控件的列表項(xiàng)個(gè)數(shù),常使用控件名稱.Items.Count返回集合中的元素個(gè)數(shù)判斷CheckBoxList控件中的每個(gè)項(xiàng)目是否被選中時(shí),使用如下方法:for(inti=0;i<控件名稱.Items.Count;i++){

if(控件名稱.Items[i].Selected){

}}50實(shí)例4-7CheckBoxList應(yīng)用當(dāng)選擇個(gè)人愛(ài)好并單擊提交按鈕后顯示選中項(xiàng)的提示信息。源程序:CheckBoxList.aspx51ListBox和DropDownList控件

ListBox(列表框)和DropDownList(下拉列表框)控件也是一種常見(jiàn)的用于向用戶提供輸入數(shù)據(jù)選項(xiàng)的控件,其外觀如圖所示。

52DropDownList控件允許用戶從預(yù)定義的下拉列表中選擇一項(xiàng)。 <asp:DropDownListID="DropDownList1"runat="server"></asp:DropDownList>53DropDownList控件實(shí)用屬性和事件表DataSource屬性使用的數(shù)據(jù)源。DataTextField屬性對(duì)應(yīng)數(shù)據(jù)源中的一個(gè)字段,該字段所有內(nèi)容將被顯示于下拉列表中。DataValueField屬性數(shù)據(jù)源中的一個(gè)字段,指定下拉列表中每個(gè)可選項(xiàng)的值。Items屬性列表中所有選項(xiàng)的集合,經(jīng)常使用Items.Add()方法添加項(xiàng),Clear()方法刪除所有項(xiàng)。SelectedItem屬性當(dāng)前選定項(xiàng)。SelectedValue屬性當(dāng)前選定項(xiàng)的屬性Value值。SelectedIndexChanged事件當(dāng)選擇下拉列表中一項(xiàng)后被觸發(fā)。DataBind()方法綁定數(shù)據(jù)源。54添加項(xiàng)到DropDownList中在屬性窗口中直接對(duì)屬性Items進(jìn)行設(shè)置利用DropDownList對(duì)象的Items.Add()方法添加項(xiàng),如: DropDownList1.Items.Add(newListItem("浙江","zhejiang"));通過(guò)屬性DataSource設(shè)置數(shù)據(jù)源,再通過(guò)DataBind()方法顯示數(shù)據(jù)。55實(shí)例4-5實(shí)現(xiàn)聯(lián)動(dòng)的下拉列表聯(lián)動(dòng)的下拉列表在實(shí)際工程項(xiàng)目中非常普遍,如要查詢某班級(jí)的課表,需要“學(xué)年—學(xué)期—分院—班級(jí)”這樣聯(lián)動(dòng)的下拉列表。本實(shí)例以日期聯(lián)動(dòng)為例,在默認(rèn)情況下,顯示系統(tǒng)日期,當(dāng)改變年或月時(shí),相應(yīng)的每月天數(shù)會(huì)隨之而變。56實(shí)例4-5實(shí)現(xiàn)聯(lián)動(dòng)的下拉列表(續(xù))源程序:DropDownList.aspx程序說(shuō)明:瀏覽時(shí)首先觸發(fā)Page_Load事件,綁定年、月、日到三個(gè)DropDownList控件。當(dāng)改變年或月份時(shí),觸發(fā)相應(yīng)控件的SelectedIndexChanged事件形成頁(yè)面往返,將相應(yīng)月份的天數(shù)綁定到ddlDay。574.3.5ListBox控件DropDownList和ListBox控件都允許用戶從列表中選擇項(xiàng),區(qū)別在于DropDownList的列表在用戶選擇前處于隱藏狀態(tài),而ListBox的選項(xiàng)列表是可見(jiàn)的,并且可同時(shí)選擇多項(xiàng)。<asp:ListBoxID="ListBox1"runat="server"></asp:ListBox>SelectionMode屬性:值為Multiple表示允許選擇多項(xiàng)。58實(shí)例4-6實(shí)現(xiàn)數(shù)據(jù)項(xiàng)在ListBox控件之間的移動(dòng)當(dāng)選擇左邊列表框中的項(xiàng),再單擊按鈕后相應(yīng)的項(xiàng)將移動(dòng)到右邊的列表框。源程序:ListBox.aspx594.3.8Image和ImageMap控件Image控件用于在Web窗體上顯示圖像,圖像源文件可以使用ImageUrl屬性在界面設(shè)計(jì)時(shí)確定,也可以在編程時(shí)指定。在工程實(shí)際項(xiàng)目中常與數(shù)據(jù)源綁定,根據(jù)數(shù)據(jù)源指定信息顯示圖像。<asp:ImageID="Image1"runat="server"ImageUrl="~/pic/map.JPG"/>注意:Image控件不包含Click事件,如果需要Click事件處理流程,可使用ImageButton控件代替Image控件。604.3.8Image和ImageMap控件(續(xù))ImageMap控件除可以用來(lái)顯示圖像外,還可以實(shí)現(xiàn)圖像的超鏈接??梢詫@示的圖像劃分為不同形狀的熱點(diǎn)區(qū)域,分別鏈接到不同的網(wǎng)頁(yè)。在工程實(shí)際項(xiàng)目中,常用于導(dǎo)航條、地圖等。熱點(diǎn)區(qū)域通過(guò)屬性HotSpot設(shè)置,劃分的區(qū)域有圓形CircleHotSpot、長(zhǎng)方形RectangleHotSpot和任意多邊形PolygonHotSpot,每個(gè)區(qū)域通過(guò)屬性NavigateUrl確定要鏈接到的URL。61實(shí)例4-8利用ImageMap設(shè)計(jì)導(dǎo)航條整個(gè)導(dǎo)航條是一張圖片,當(dāng)設(shè)置好熱點(diǎn)區(qū)域后,點(diǎn)擊不同區(qū)域?qū)㈡溄拥讲煌W(wǎng)頁(yè)。源程序:ImageMap.aspx624.3.9HyperLink控件用于在網(wǎng)頁(yè)上創(chuàng)建鏈接,與元素<a>不同,HyperLink控件可以與數(shù)據(jù)源綁定。<asp:HyperLinkID="HyperLink1"runat="server"Target="_blank">HyperLink</asp:HyperLink>屬性Target:值為框架名、_blank或_self??蚣苊麤Q定了在指定的框架中顯示鏈接頁(yè),_blank決定了在一個(gè)新窗口中顯示鏈接頁(yè),而_self決定了在原窗口中顯示鏈接頁(yè)。634.3.9HyperLink控件注意:HyperLink控件不包含Click事件,要使用Click事件可用LinkButton控件代替。在同時(shí)設(shè)置屬性Text和ImageUrl的情況下,ImageUrl優(yōu)先。若找不到圖片則顯示屬性Text設(shè)置的內(nèi)容。在HyperLink中直接設(shè)置ImageUrl后顯示的圖形尺寸是不可調(diào)的,若要改變圖形尺寸,可配合使用Image控件。644.3.10Table控件用于在Web窗體上動(dòng)態(tài)地創(chuàng)建表格,是一種容器控件。Table對(duì)象由行(TableRow)對(duì)象組成,TableRow對(duì)象由單元格(TableCell)對(duì)象組成。<asp:TableID="Table1"runat="server"GridLines="Both"><asp:TableRowrunat="server"><asp:TableCellrunat="server">學(xué)號(hào)</asp:TableCell><asp:TableCellrunat="server">姓名</asp:TableCell><asp:TableCellrunat="server">成績(jī)</asp:TableCell></asp:TableRow></asp:Table>654.3.10Table控件(續(xù))注意:向Table添加行使用屬性Rows;向TableRow添加單元格使用屬性Cells;向TableCell添加控件使用屬性Controls。66動(dòng)態(tài)操作表控件TableRowtRow=newTableRow();

//聲明一個(gè)表格行對(duì)象

Table1.Rows.Add(tRow);

//添加一個(gè)新行TableCelltCell=newTableCell();

//聲明一個(gè)單元格對(duì)象

tRow.Cells.Add(tCell);

//添加一個(gè)新單元格通過(guò)TableCell對(duì)象的Text屬性從單元格中讀取、或向其中寫入數(shù)據(jù)。67實(shí)例4-10動(dòng)態(tài)生成表格本實(shí)例頁(yè)面上的簡(jiǎn)易成績(jī)錄入界面實(shí)質(zhì)是動(dòng)態(tài)生成的表格。源程序:Table.aspx

684.3.11Panel和PlaceHolder控件都是Web窗體上的容器控件,常用于動(dòng)態(tài)地建立控件和不同情況下在同一個(gè)頁(yè)面上顯示不同內(nèi)容。相比較而言,Panel控件的屬性要豐富得多。Panel控件把包含在其中的控件組當(dāng)成一個(gè)整體看待,這樣可以統(tǒng)一設(shè)置屬性。 <asp:PanelID="Panel1"runat="server"></asp:Panel> <asp:PlaceHolderID="PlaceHolder1"runat="server"></asp:PlaceHolder>69容器控件“容器”控件是指可以安放其他控件的控件。ASP.NET提供兩種容器控件:Panel控件和PlaceHolder控件。

PlaceHolder控件用于在Web頁(yè)面上保留一個(gè)位置,以便在程序運(yùn)行時(shí)向其中動(dòng)態(tài)添加其他控件。

Panel控件作用與PlaceHolder控件相似,可以將放置在其中的一組控件作為一個(gè)整體來(lái)操作。70PlaceHolder與Panel的區(qū)別Panel控件內(nèi)可以放置任何內(nèi)容,可以通過(guò)Enable或Visible屬性設(shè)置控件內(nèi)容是否允許操作或是否可以顯示。Panel可以在設(shè)計(jì)模式拖入其它控件;PlaceHolder只能在后臺(tái)用程序動(dòng)態(tài)操作。71Panel的兩個(gè)用法:顯示/隱藏和向容器中添加/刪除控件

1.顯示:Panel1.Visible=true;

隱藏:Panel1.Visible=false;

這樣,所有Panel容器的控件都會(huì)同時(shí)顯示或隱藏.

2.添加/刪除

向容器添加控件:

TextBox

t

=

newTextBox();

t.Text

="TextBox1";

Panel1.Controls.Add(t);

72實(shí)例4-11利用Panel實(shí)現(xiàn)簡(jiǎn)易注冊(cè)頁(yè)面源程序:Panel.aspx程序說(shuō)明:當(dāng)頁(yè)面載入時(shí),首先執(zhí)行Page_Load事件代碼,將pnlStep1設(shè)置為可見(jiàn),而將其它兩個(gè)Panel控件設(shè)置為不可見(jiàn)。判斷用戶名是否重復(fù)在實(shí)際工程項(xiàng)目中將與數(shù)據(jù)庫(kù)連接。信息也將保存到數(shù)據(jù)庫(kù)中。73實(shí)例4-12利用PlaceHolder動(dòng)態(tài)添加控件PlaceHolder控件在Web窗體上起到占位的作用,可向其中動(dòng)態(tài)地添加需要的控件。源程序:PlaceHolder.aspx程序說(shuō)明:頁(yè)面載入時(shí),執(zhí)行Page_Load事件代碼,動(dòng)態(tài)生成一個(gè)Button控件和一個(gè)TextBox控件。當(dāng)單擊“確認(rèn)”按鈕時(shí),根據(jù)注冊(cè)的事件執(zhí)行btnSubmit_Click()中代碼。74實(shí)例4-12利用PlaceHolder動(dòng)態(tài)添加控件注意:如果一個(gè)包含動(dòng)態(tài)生成控件的頁(yè)面有往返處理,那么動(dòng)態(tài)生成控件的代碼要放在Page_Load事件中,當(dāng)頁(yè)面往返時(shí)觸發(fā)Page_Load事件需要重復(fù)生成動(dòng)態(tài)控件;動(dòng)態(tài)生成的控件不能在設(shè)計(jì)時(shí)直接綁定事件代碼,需手工注冊(cè);在獲取動(dòng)態(tài)生成控件中文本框等控件的輸入信息時(shí),需要使用FindControl()方法先找到控件。754.3.12MultiView和View控件提供了一種多視圖切換顯示信息的方式,可以容易地實(shí)現(xiàn)分頁(yè)多步驟功能。在使用時(shí),MultiView作為View的容器控件,View作為其它控件的容器控件。ActiveViewIndex屬性:決定了當(dāng)前顯示哪個(gè)視圖,默認(rèn)值為-1,值0表示MultiView中包含的第一個(gè)View。76View中Button類型控件實(shí)用屬性表CommandNameCommandArgument說(shuō)明NextView不需要設(shè)置顯示下一個(gè)ViewPrevView不需要設(shè)置顯示上一個(gè)ViewSwitchViewByID要切換到的View控件ID切換到指定ID的ViewViewByIndex要切換到的View控件索引號(hào)切換到指定索引號(hào)的View77實(shí)例4-13利用MultiView和View實(shí)現(xiàn)用戶編程習(xí)慣調(diào)查源程序:MultiView.aspx784.3.13Wizard控件Wizard控件作為一種向?qū)Э丶?,主要用于搜集用戶信息、配置系統(tǒng)等。<asp:WizardID="Wizard1"runat="server"><WizardSteps><asp:WizardSteprunat="server"title="Step1"></asp:WizardStep><asp:WizardSteprunat="server"title="Step2"></asp:WizardStep></WizardSteps></asp:Wizard>794.3.13Wizard控件(續(xù))804.3.13Wizard控件(續(xù))側(cè)欄(SideBar):包含所有向?qū)Р襟E的列表,這些列表內(nèi)容來(lái)自WizardStep的屬性Title值。對(duì)應(yīng)的模板屬性是SideBarTemplate。標(biāo)題(Header):每個(gè)向?qū)Р襟E提供一致的標(biāo)題信息,對(duì)應(yīng)的模板屬性是HeaderTemplate。向?qū)Р襟E集合(WizardSteps):Wizard控件的核心,必須逐個(gè)為向?qū)У拿總€(gè)步驟定義內(nèi)容。每個(gè)步驟需設(shè)置的屬性和內(nèi)含的控件都體現(xiàn)在<asp:WizardStep>元素中,所有的<asp:WizardStep>又包含在

溫馨提示

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