面向 .NET 的 Web 應(yīng)用程序設(shè)計(jì):第4章 ASP.NET 3.5標(biāo)準(zhǔn)控件_第1頁
面向 .NET 的 Web 應(yīng)用程序設(shè)計(jì):第4章 ASP.NET 3.5標(biāo)準(zhǔn)控件_第2頁
面向 .NET 的 Web 應(yīng)用程序設(shè)計(jì):第4章 ASP.NET 3.5標(biāo)準(zhǔn)控件_第3頁
面向 .NET 的 Web 應(yīng)用程序設(shè)計(jì):第4章 ASP.NET 3.5標(biāo)準(zhǔn)控件_第4頁
面向 .NET 的 Web 應(yīng)用程序設(shè)計(jì):第4章 ASP.NET 3.5標(biāo)準(zhǔn)控件_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1第4章ASP.NET3.5標(biāo)準(zhǔn)控件2本章要點(diǎn):理解ASP.NET3.5頁面事件處理流程了解HTML服務(wù)器控件熟悉ASP.NET3.5標(biāo)準(zhǔn)控件熟練掌握各個控件應(yīng)用實(shí)例3目錄4.1ASP.NET3.5頁面事件處理4.1.1ASP.NET3.5事件4.1.2屬性IsPostBack4.2ASP.NET3.5服務(wù)器控件概述4.2.1HTML服務(wù)器控件簡介4.2.2Web服務(wù)器控件簡介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頁面事件處理只有熟悉ASP.NET3.5頁面事件處理流程,才能理解代碼的執(zhí)行順序。74.1.1ASP.NET3.5事件常用頁面處理事件Page_PreInit:通過IsPostBack屬性確定是否第一次處理該頁、創(chuàng)建動態(tài)控件、動態(tài)設(shè)置主題屬性、讀取配置文件屬性等。Page_Init:初始化控件屬性。Page_Load:讀取和更新控件屬性??丶录禾幚硖囟ㄊ录?,如Button控件的Click事件。事件處理的先后順序Page_PreInit、Page_Init、Page_Load和控件的事件8Web窗體頁運(yùn)行過程生命周期94.1.1ASP.NET3.5事件(續(xù))Click事件被觸發(fā)時會引起頁面往返處理。Change事件被觸發(fā)時,先將事件的信息暫時保存在客戶端的緩沖區(qū)中,等到下一次向服務(wù)器傳遞信息時,再和其他信息一起發(fā)送給服務(wù)器。若要讓控件的Change事件立即得到服務(wù)器的響應(yīng),就需要將該控件的屬性AutoPostBack值設(shè)為true。104.1.2屬性IsPostBack當(dāng)控件的事件被觸發(fā)時,Page_Load事件會在控件的事件之前被觸發(fā)。如果想在執(zhí)行控件的事件代碼時不執(zhí)行Page_Load事件中的代碼,可以通過判斷屬性Page.IsPostBack實(shí)現(xiàn)。屬性IsPostBack在用戶第一次瀏覽網(wǎng)頁時,會返回值false,否則返回值true。11實(shí)例4-1屬性IsPostBack應(yīng)用本實(shí)例在頁面第一次載入時顯示“頁面第一次加載!”。當(dāng)單擊按鈕時顯示“執(zhí)行Click事件代碼!”信息。源程序:IsPostBack.aspx程序說明:當(dāng)單擊按鈕時引起頁面往返,此時首先處理Page_Load事件中代碼,但因?yàn)椤?!IsPostBack”值為false,所以不執(zhí)行“Response.Write(“頁面第一次加載!”)”,然后處理Click事件中代碼,顯示“執(zhí)行Click事件代碼!”信息。124.2ASP.NET3.5服務(wù)器控件概述HTML服務(wù)器控件:常用于升級原有的ASP頁面到ASP.NET頁面。Web服務(wù)器控件:目前的ASP.NET3.5網(wǎng)站建設(shè)中,優(yōu)先考慮Web服務(wù)器控件。當(dāng)Web服務(wù)器控件無法完成特定的任務(wù)時,可考慮HTML服務(wù)器控件。134.2.1HTML服務(wù)器控件簡介實(shí)現(xiàn)了將XHTML元素到服務(wù)器控件的轉(zhuǎn)換。經(jīng)過轉(zhuǎn)換后,Web窗體頁就可訪問XHTML元素(HTML服務(wù)器控件),從而實(shí)現(xiàn)在服務(wù)器端對HTML服務(wù)器控件的編程。添加屬性“runat="server"”將轉(zhuǎn)換XHTML元素到HTML服務(wù)器控件。 <inputid="Button2"type="button"value="button"/> <inputid="Button2"type="button"value="button"runat="server"/>144.2.2Web服務(wù)器控件簡介可以描述頁面元素的功能、外觀、操作方式和行為等。對于不同的瀏覽器,可能會得到不同的XHTML輸出。根據(jù)功能不同分成標(biāo)準(zhǔn)控件、數(shù)據(jù)控件、驗(yàn)證控件、導(dǎo)航控件、登錄控件、WebParts控件、AJAXExtensions控件和用戶自定義控件。

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

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

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

19

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

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

23按鈕控件實(shí)用屬性和事件PostBackUrl屬性:單擊按鈕時發(fā)送到的URL。Click事件:當(dāng)單擊按鈕時被觸發(fā),執(zhí)行服務(wù)器端代碼。ClientClick事件:當(dāng)單擊按鈕時被觸發(fā),執(zhí)行客戶端代碼。24比較<a>與LinkButton兩者都能呈現(xiàn)超鏈接形式設(shè)置具體的跳轉(zhuǎn)方法不同。在<a>元素中通過屬性href設(shè)置,如:

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

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

Response.Redirect("");25【例】ImageButton控件的應(yīng)用

(Click事件的參數(shù)e,能根據(jù)用戶單擊位置提供x坐標(biāo)和y坐標(biāo))

<asp:ImageButtonID="ImageButton1"runat="server"ImageUrl="~/sina.gif"OnClick="ImageButton1_Click"/><br/><asp:LabelID="Label1"runat="server"></asp:Label>voidImageButton1_Click(objectsender,ImageClickEventArgse){Label1.Text="你單擊了圖像按鈕。<br>您的坐標(biāo)是"+"X為"+e.X+",Y為"+e.Y;}26實(shí)例4-4利用Button控件執(zhí)行客戶端腳本要在單擊Button控件后執(zhí)行客戶端腳本,需要使用ClientClick事件和JavaScript。源程序:ClientClick.aspx程序說明:當(dāng)單擊刪除按鈕時,觸發(fā)ClientClick事件,執(zhí)行JavaScript代碼“returnconfirm('確定要刪除記錄嗎?')”,彈出確認(rèn)對話框。若單擊“確定”按鈕,觸發(fā)Click事件,執(zhí)行刪除操作(這里僅輸出信息,實(shí)際操作需連接數(shù)據(jù)庫);若單擊“取消”,將不再觸發(fā)Click事件,運(yùn)行結(jié)束。

274.3.4DropDownList控件允許用戶從預(yù)定義的下拉列表中選擇一項(xiàng)。 <asp:DropDownListID="DropDownList1"runat="server"></asp:DropDownList>28DropDownList控件實(shí)用屬性和事件表DataSource屬性使用的數(shù)據(jù)源。DataTextField屬性對應(yīng)數(shù)據(jù)源中的一個字段,該字段所有內(nèi)容將被顯示于下拉列表中。DataValueField屬性數(shù)據(jù)源中的一個字段,指定下拉列表中每個可選項(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ù)源。29添加項(xiàng)到DropDownList中在屬性窗口中直接對屬性Items進(jìn)行設(shè)置利用DropDownList對象的Items.Add()方法添加項(xiàng),如: DropDownList1.Items.Add(newListItem("浙江","zhejiang"));通過屬性DataSource設(shè)置數(shù)據(jù)源,再通過DataBind()方法顯示數(shù)據(jù)。30實(shí)例4-5實(shí)現(xiàn)聯(lián)動的下拉列表聯(lián)動的下拉列表在實(shí)際工程項(xiàng)目中非常普遍,如要查詢某班級的課表,需要“學(xué)年—學(xué)期—分院—班級”這樣聯(lián)動的下拉列表。本實(shí)例以日期聯(lián)動為例,在默認(rèn)情況下,顯示系統(tǒng)日期,當(dāng)改變年或月時,相應(yīng)的每月天數(shù)會隨之而變。31實(shí)例4-5實(shí)現(xiàn)聯(lián)動的下拉列表(續(xù))源程序:DropDownList.aspx程序說明:瀏覽時首先觸發(fā)Page_Load事件,綁定年、月、日到三個DropDownList控件。當(dāng)改變年或月份時,觸發(fā)相應(yīng)控件的SelectedIndexChanged事件形成頁面往返,將相應(yīng)月份的天數(shù)綁定到ddlDay。324.3.5ListBox控件DropDownList和ListBox控件都允許用戶從列表中選擇項(xiàng),區(qū)別在于DropDownList的列表在用戶選擇前處于隱藏狀態(tài),而ListBox的選項(xiàng)列表是可見的,并且可同時選擇多項(xiàng)。<asp:ListBoxID="ListBox1"runat="server"></asp:ListBox>SelectionMode屬性:值為Multiple表示允許選擇多項(xiàng)。33實(shí)例4-6實(shí)現(xiàn)數(shù)據(jù)項(xiàng)在ListBox控件之間的移動當(dāng)選擇左邊列表框中的項(xiàng),再單擊按鈕后相應(yīng)的項(xiàng)將移動到右邊的列表框。源程序:ListBox.aspx344.3.6CheckBox和CheckBoxList控件為用戶提供“真/假”、“是/否”或“開/關(guān)”選項(xiàng)之間進(jìn)行選擇的方法,若需要多項(xiàng)選擇,可以使用多個CheckBox或單個CheckBoxList,但一般采用CheckBoxList。<asp:CheckBoxID="CheckBox1"runat="server"/> <asp:CheckBoxListID="CheckBoxList1"runat="server"></asp:CheckBoxList>354.3.6CheckBox和CheckBoxList控件(續(xù))注意:判斷CheckBox是否選中的屬性是Checked,而CheckBoxList作為集合控件,判斷列表項(xiàng)是否選中的屬性是成員的Selected屬性。在實(shí)際工程項(xiàng)目中,一般設(shè)置CheckBoxList的屬性AutoPostBack值為false。要提交數(shù)據(jù)到服務(wù)器,不采用CheckBoxList的自身事件,而是常配合Button控件實(shí)現(xiàn)。36實(shí)例4-7CheckBoxList應(yīng)用當(dāng)選擇個人愛好并單擊提交按鈕后顯示選中項(xiàng)的提示信息。37

選擇你喜愛的球類運(yùn)動:<br

/><asp:CheckBoxList

ID="CheckBoxList1"

runat="server"

AutoPostBack="True"

OnSelectedIndexChanged="CheckBoxList1_SelectedIndexChanged">

<asp:ListItem>籃球</asp:ListItem>

<asp:ListItem>足球</asp:ListItem>

<asp:ListItem>乒乓球</asp:ListItem>

<asp:ListItem>羽毛球</asp:ListItem></asp:CheckBoxList><asp:Label

ID="Label1"

runat="server"/>38

protected

voidCheckBoxList1_SelectedIndexChanged(objectsender,EventArgse){

inti;

stringstr="您喜愛的球類運(yùn)動是:<br>";

for(i=0;i<CheckBoxList1.Items.Count;i++)if(CheckBoxList1.Items[i].Selected)str+=CheckBoxList1.Items[i].Value+"<br>";Label1.Text=str;}394.3.7RadioButton和RadioButtonList控件常用于在多種選擇中只能選擇一項(xiàng)的場合。單個的RadioButton只能提供單項(xiàng)選擇,可以將多個RadioButton形成一組,方法是設(shè)置每個RadioButton的屬性GroupName為同一名稱。<asp:RadioButtonID="RadioButton1"runat="server"GroupName="group"/> <asp:RadioButtonID="RadioButton2"runat="server"GroupName="group"/>404.3.7RadioButton和RadioButtonList控件<asp:RadioButtonListID="RadioButtonList1"runat="server"><asp:ListItem>男</asp:ListItem><asp:ListItem>女</asp:ListItem></asp:RadioButtonList>注意:判斷RadioButton是否選中使用Checked屬性,而獲取RadioButtonList的選中項(xiàng)使用屬性SelectedItem。41【例】

選擇您從上海到北京的交通工具:<br

/><asp:RadioButtonList

ID="RadioButtonList1"

runat="server"

AutoPostBack="True"

OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged"

RepeatDirection="Horizontal">

<asp:ListItem>火車</asp:ListItem>

<asp:ListItem>汽車</asp:ListItem>

<asp:ListItem>飛機(jī)</asp:ListItem></asp:RadioButtonList><br

/><asp:Label

ID="Label1"

runat="server"/>42protectedvoidRadioButtonList1_SelectedIndexChanged(objectsender,EventArgse){ Label1.Text="您選擇的交通工具是"+RadioButtonList1.SelectedValue;}434.3.8Image和ImageMap控件Image控件用于在Web窗體上顯示圖像,圖像源文件可以使用ImageUrl屬性在界面設(shè)計(jì)時確定,也可以在編程時指定。在工程實(shí)際項(xiàng)目中常與數(shù)據(jù)源綁定,根據(jù)數(shù)據(jù)源指定信息顯示圖像。<asp:ImageID="Image1"runat="server"ImageUrl="~/pic/map.JPG"/>注意:Image控件不包含Click事件,如果需要Click事件處理流程,可使用ImageButton控件代替Image控件。444.3.8Image和ImageMap控件動態(tài)生成圖片超鏈接導(dǎo)航454.3.8Image和ImageMap控件(續(xù))ImageMap控件除可以用來顯示圖像外,還可以實(shí)現(xiàn)圖像的超鏈接。可以將顯示的圖像劃分為不同形狀的熱點(diǎn)區(qū)域,分別鏈接到不同的網(wǎng)頁。在工程實(shí)際項(xiàng)目中,常用于導(dǎo)航條、地圖等。熱點(diǎn)區(qū)域通過屬性HotSpot設(shè)置,劃分的區(qū)域有圓形CircleHotSpot、長方形RectangleHotSpot和任意多邊形PolygonHotSpot,每個區(qū)域通過屬性NavigateUrl確定要鏈接到的URL。46實(shí)例4-8利用ImageMap設(shè)計(jì)導(dǎo)航條整個導(dǎo)航條是一張圖片,當(dāng)設(shè)置好熱點(diǎn)區(qū)域后,點(diǎn)擊不同區(qū)域?qū)㈡溄拥讲煌W(wǎng)頁。源程序:ImageMap.aspx47【例】ImageMap控件的使用

<asp:ImageMapID="ImageMap1"runat="server"Height="130px"HotSpotMode="Navigate"ImageUrl="~/image/hotspot.bmp"Width="200px"OnClick="ImageMap1_Click">

<asp:RectangleHotSpotBottom="65"NavigateUrl=""Right="155"/><asp:RectangleHotSpotBottom="130"NavigateUrl=""Right="155"Top="65"/><asp:RectangleHotSpotBottom="65"HotSpotMode="PostBack"Left="155"PostBackValue="sina"Right="200"/><asp:RectangleHotSpotBottom="130"HotSpotMode="PostBack"Left="155"PostBackValue="hexun"Right="200"Top="65"/></asp:ImageMap>48voidImageMap1_Click(objectsender,ImageMapEventArgse){

intsinacount=((Session["sinacount"]!=null)?(int)Sessopm["sinacount"]:0);

inthexuncount=((Session["hexuncount"]!=null)?(int)Session["hexuncount"]:0);

if(e.PostBackValue.Contains("sina")){sinacount+=1;Label1.Text="新浪現(xiàn)在的投票數(shù)是:"+sinacount+"<br>"+"和訊現(xiàn)在的投票數(shù)是:"+hexuncount;}49

else

if(e.PostBackValue.Contains("hexun")){hexuncount+=1;Label1.Text="新浪現(xiàn)在的投票數(shù)是:"+sinacount+"<br>"+"和訊現(xiàn)在的投票數(shù)是:"+hexuncount;}Session["sinacount"]=sinacount;Session["hexuncount"]=hexuncount;}504.3.9HyperLink控件用于在網(wǎng)頁上創(chuàng)建鏈接,與元素<a>不同,HyperLink控件可以與數(shù)據(jù)源綁定。<asp:HyperLinkID="HyperLink1"runat="server"Target="_blank">HyperLink</asp:HyperLink>屬性Target:值為框架名、_blank或_self??蚣苊麤Q定了在指定的框架中顯示鏈接頁,_blank決定了在一個新窗口中顯示鏈接頁,而_self決定了在原窗口中顯示鏈接頁。514.3.9HyperLink控件注意:HyperLink控件不包含Click事件,要使用Click事件可用LinkButton控件代替。在同時設(shè)置屬性Text和ImageUrl的情況下,ImageUrl優(yōu)先。若找不到圖片則顯示屬性Text設(shè)置的內(nèi)容。在HyperLink中直接設(shè)置ImageUrl后顯示的圖形尺寸是不可調(diào)的,若要改變圖形尺寸,可配合使用Image控件。52實(shí)例4-9組合使用HyperLink和Image控件本實(shí)例呈現(xiàn)頁面中顯示圖片的尺寸與實(shí)際圖片的尺寸不相同。源程序:HyperLink.aspx534.3.10Table控件用于在Web窗體上動態(tài)地創(chuàng)建表格,是一種容器控件。Table對象由行(TableRow)對象組成,TableRow對象由單元格(TableCell)對象組成。<asp:TableID="Table1"runat="server"GridLines="Both"><asp:TableRowrunat="server"><asp:TableCellrunat="server">學(xué)號</asp:TableCell><asp:TableCellrunat="server">姓名</asp:TableCell><asp:TableCellrunat="server">成績</asp:TableCell></asp:TableRow></asp:Table>544.3.10Table控件(續(xù))注意:向Table添加行使用屬性Rows;向TableRow添加單元格使用屬性Cells;向TableCell添加控件使用屬性Controls。55實(shí)例4-10動態(tài)生成表格本實(shí)例頁面上的簡易成績錄入界面實(shí)質(zhì)是動態(tài)生成的表格。源程序:Table.aspx

564.3.11Panel和PlaceHolder控件都是Web窗體上的容器控件,常用于動態(tài)地建立控件和不同情況下在同一個頁面上顯示不同內(nèi)容。相比較而言,Panel控件的屬性要豐富得多。Panel控件把包含在其中的控件組當(dāng)成一個整體看待,這樣可以統(tǒng)一設(shè)置屬性。 <asp:PanelID="Panel1"runat="server"></asp:Panel> <asp:PlaceHolderID="PlaceHolder1"runat="server"></asp:PlaceHolder>57實(shí)例4-11利用Panel實(shí)現(xiàn)簡易注冊頁面源程序:Panel.aspx程序說明:當(dāng)頁面載入時,首先執(zhí)行Page_Load事件代碼,將pnlStep1設(shè)置為可見,而將其它兩個Panel控件設(shè)置為不可見。判斷用戶名是否重復(fù)在實(shí)際工程項(xiàng)目中將與數(shù)據(jù)庫連接。信息也將保存到數(shù)據(jù)庫中。58實(shí)例4-12利用PlaceHolder動態(tài)添加控件PlaceHolder控件在Web窗體上起到占位的作用,可向其中動態(tài)地添加需要的控件。源程序:PlaceHolder.aspx程序說明:頁面載入時,執(zhí)行Page_Load事件代碼,動態(tài)生成一個Button控件和一個TextBox控件。當(dāng)單擊“確認(rèn)”按鈕時,根據(jù)注冊的事件執(zhí)行btnSubmit_Click()中代碼。59實(shí)例4-12利用PlaceHolder動態(tài)添加控件注意:如果一個包含動態(tài)生成控件的頁面有往返處理,那么動態(tài)生成控件的代碼要放在Page_Load事件中,當(dāng)頁面往返時觸發(fā)Page_Load事件需要重復(fù)生成動態(tài)控件;動態(tài)生成的控件不能在設(shè)計(jì)時直接綁定事件代碼,需手工注冊;在獲取動態(tài)生成控件中文本框等控件的輸入信息時,需要使用FindControl()方法先找到控件。604.3.12MultiView和View控件提供了一種多視圖切換顯示信息的方式,可以容易地實(shí)現(xiàn)分頁多步驟功能。在使用時,MultiView作為View的容器控件,View作為其它控件的容器控件。<asp:MultiViewID="MultiView1"runat="server"><asp:ViewID="View1"runat="server"></asp:View><asp:ViewID="View2"runat="server"></asp:View></asp:MultiView>ActiveViewIndex屬性:決定了當(dāng)前顯示哪個視圖,默認(rèn)值為-1,值0表示MultiView中包含的第一個View。61View中Button類型控件實(shí)用屬性表CommandNameCommandArgument說明NextView不需要設(shè)置顯示下一個ViewPrevView不需要設(shè)置顯示上一個ViewSwitchViewByID要切換到的View控件ID切換到指定ID的ViewViewByIndex要切換到的View控件索引號切換到指定索引號的View62實(shí)例4-13利用MultiView和View實(shí)現(xiàn)用戶編程習(xí)慣調(diào)查源程序:MultiView.aspx634.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>644.3.13Wizard控件(續(xù))654.3.13Wizard控件(續(xù))側(cè)欄(SideBar):包含所有向?qū)Р襟E的列表,這些列表內(nèi)容來自WizardStep的屬性Title值。對應(yīng)的模板屬性是SideBarTemplate。標(biāo)題(Header):每個向?qū)Р襟E提供一致的標(biāo)題信息,對應(yīng)的模板屬性是HeaderTemplate。向?qū)Р襟E集合(WizardSteps):Wizard控件的核心,必須逐個為向?qū)У拿總€步驟定義內(nèi)容。每個步驟需設(shè)置的屬性和內(nèi)含的控件都體現(xiàn)在<asp:WizardStep>元素中,所有的<asp:WizardStep>又包含在<WizardSteps>元素中。664.3.13Wizard控件(續(xù))導(dǎo)航按鈕(NavigationButton):呈現(xiàn)形式與每個WizardStep的屬性StepType有關(guān)。Auto默認(rèn)值,由系統(tǒng)根據(jù)步驟在集合中的順序顯示相關(guān)的導(dǎo)航按鈕。Start顯示“下一步”按鈕。對應(yīng)StartNavigationTemplate。

Step顯示“上一步”按鈕和“下一步”按鈕。對應(yīng)StepNavigationTemplate

。Finsh顯示“上一步”和“完成”按鈕。對應(yīng)FinishNavigationTemplate。Complete不顯示任何導(dǎo)航按鈕。67Wizard控件的實(shí)用屬性和事件表屬性、事件說明ActiveStepIndex決定當(dāng)前顯示哪個步驟。AllowReturn值flase表示防止用戶訪問以前的步驟。DisplayCancelButton是否顯示“取消”按鈕。FinishButtonClick事件當(dāng)點(diǎn)擊“完成”按鈕時觸發(fā)。NextButtonClick事件當(dāng)點(diǎn)擊“下一步”按鈕時觸發(fā)。68實(shí)例4-14利用Wizard控件實(shí)現(xiàn)用戶編程習(xí)慣調(diào)查源程序:Wizard.aspx69補(bǔ)充:1.AdRotator控件AdRotator控件提供了一套快速廣告發(fā)布系統(tǒng)。該控件會隨機(jī)地顯示所提供的廣告圖像,單擊這些圖像,可鏈接到指定的URL中。每次刷新頁面都將更改顯示的廣告,廣告的顯示頻率是由該廣告的權(quán)重決定的。AdRotator控件從有一條或多條廣告記錄的數(shù)據(jù)源讀取廣告信息。通常將廣告信息存儲在一個XML文件中,然后將AdRotator控件綁定到該文件。70Xml廣告文件的屬性屬性說明ImageUrl要顯示的圖像的URL。NavigateUrl單擊AdRotator控件時要轉(zhuǎn)到的網(wǎng)頁的URL。AlternateText圖像不可用時顯示的文本。Keyword可用于篩選特定廣告的廣告類別。Height廣告的高度(以像素為單位)。Width廣告的寬度(以像素為單位)。Impressions廣告的權(quán)重。71【例】AdRotator控件的創(chuàng)建ad.xml文件:<Advertisements><Ad><ImageUrl>~/image/hexun.gif</ImageUrl><NavigateUrl></NavigateUrl><AlternateText>和訊</AlternateText><Keyword>門戶</Keyword><Impressions>20</Impressions></Ad><Ad><ImageUrl>~/image/sina.gif</ImageUrl><NavigateUrl></NavigateUrl><AlternateText>新浪</AlternateText><Keyword>門戶</Keyword><Impressions>80</Impressions></Ad></Advertisements>72AdRotator控件AdRotator控件格式如下:<asp:AdRotatoroptions/>AdRotator控件的常用屬性和事件:屬性/事件說明AdvertisementFile設(shè)置XML廣告文件的路徑KeywordFilter該屬性與XML廣告文件的關(guān)鍵詞相關(guān),利用Keyword屬性,將AdRotator控件配置為根據(jù)指定的篩選條件顯示廣告。OnAdCreated在創(chuàng)建控件之后顯示W(wǎng)eb頁面之前,每次訪問服務(wù)器都生成一個AdCreated事件。73【例】AdRotator控件的創(chuàng)建ad.xml文件:<Advertisements><Ad><ImageUrl>~/image/hexun.gif</ImageUrl><NavigateUrl></NavigateUrl><AlternateText>和訊</AlternateText><Keyword>門戶</Keyword><Impressions>20</Impressions></Ad><Ad><ImageUrl>~/image/sina.gif</ImageUrl><NavigateUrl></NavigateUrl><AlternateText>新浪</AlternateText><Keyword>門戶</Keyword><Impressions>80</Impressions></Ad></Advertisements>74<asp:AdRotator

ID="AdRotator1"

runat="server"

AdvertisementFile="~/App_Data/ad.xml"

OnAdCreated="AdRotator1_AdCreated"

/>當(dāng)前文件的圖片格式是:<asp:Label

ID="Label1"

runat="server"

/><br

/>鏈接到的網(wǎng)址是:<asp:Label

ID="Label2"

runat="server"

/>voidAdRotator1_AdCreated(objectsender,AdCreatedEventArgse){Label1.Text=e.ImageUrl;Label2.Text=e.NavigateUrl;}752.Calendar控件Calendar控件就是日歷控件,負(fù)責(zé)在頁面上顯示日歷并接受用戶選擇日期的操作。使用Calendar控件可以執(zhí)行以下操作:顯示和選擇日期啟用日期選定日期選擇:每個日期都是一個LinkButton,可引發(fā)單擊事件周選擇或月份選擇:日歷左側(cè)出現(xiàn)一列鏈接按鈕,該按鈕可選中一周或一月自定義日歷的外觀捕獲用戶與Calendar控件之間的交互當(dāng)用戶選擇單個日期或日期范圍時,Calendar控件引發(fā)SelectionChanged事件;當(dāng)用戶定位到一個新月份時,Calendar控件引發(fā)VisibleMonthChanged事件76在Calendar控件中顯示數(shù)據(jù)信息Calendar控件的DayRender事件(日歷控件初始化事件)在日歷信息創(chuàng)建時發(fā)生,可以用來初始化日歷控件,控制日期單元格的內(nèi)容和格式;可在該事件中從數(shù)據(jù)源提取信息,并將這些信息添加到向?yàn)g覽器發(fā)送的流中。DayRender(objectsource,DayRenderEventArgse)

DayRender事件帶有兩個參數(shù),第一個參數(shù)是對Calendar控件的引用,第二個參數(shù)提供對Cell對象和Day對象的訪問。Cell對象:是一個TableCell對象,可用于設(shè)置特別日的外觀。它還支持Controls集合,可操作該集合以將內(nèi)容添加到日中。Day對象:可用于查詢關(guān)于呈現(xiàn)日的信息,控制是否可選擇該日,以及將內(nèi)容添加到日中。Day對象支持各種用于了解有關(guān)日的信息的屬性(例如IsSelected、IsToday等)。77(1)日期獲取模式Calendar控件有四種基本日期獲取模式,以指定用戶在控件中選定日、周或整個月份。通過控件的SelectionMode屬性來實(shí)現(xiàn)(該屬性獲得的值是CalendarSelectionMode枚舉類型的枚舉元素):模式描述None用戶不能選擇Day用戶只能選擇一天DayWeek用戶可以選擇一天或一周DayWeekMonth用戶可以選擇一天、一周或一月78日期選定的信息:SelectedDate:確定Calendar控件上的選定的日期。如果用戶選定單個日期,該屬性包含此日期;如果選定多個日期,則該屬性包含此日期范圍中的第一個日期。SelectedDates:包含所有選定日期的集合。79【例】演示日期獲取模式的選擇

DropDownList的AutoPostBack屬性設(shè)為true<asp:Calendar

ID="Calendar1"

runat="server"

OnSelectionChanged="click"/>voidPage_Load(ObjectSender,EventArgse){Calendar1.SelectionMode=(CalendarSelectionMode)DropDownList1.SelectedIndex;

if(Calendar1.SelectionMode==CalendarSelectionMode.None)Calendar1.SelectedDates.Clear();}protectedvoidCalendar1_SelectionChanged(objectsender,EventArgse){ Label1.Text="當(dāng)前選擇的日期是"+Calendar1.SelectedDate.ToLongDateString();}80(2)自定義Calendar控件的外觀

屬性名說明Font,F(xiàn)oreColor,BackColor設(shè)置字體、文本和背景顏色Height,Width設(shè)置控件的整體尺寸CellPadding,CellSpacing設(shè)置特別日的邊距和間隔BorderColor,BorderStyle,ShowGridLindes設(shè)置邊框和網(wǎng)格線的顏色、尺寸和樣式。Calendar控件的外觀屬性81(3)設(shè)置Calendar控件的樣式

82(4)自定義特別日日歷控件還可以定義特別日的外觀和顯示,如節(jié)日、紀(jì)念日等??梢园ㄒ韵虏僮鳎和怀鲲@示某些日。例如,以不同的顏色顯示假日。向日顯示中添加信息,例如約會或事件信息。自定義用戶可以單擊以選擇某日的鏈接文本。自定義特別日利用的是Calendar控件的DayRender事件。通過在DayRender事件中編寫代碼可在創(chuàng)建日期單元格時控制其內(nèi)容和格式。83【例】自定義特別日<asp:Calendar

ID="Calendar1"

runat="server"

OnDayRender="DayRender"

NextMonthText="下一月"

PrevMonthText="上一月"

SelectionMode="DayWeek"

OnSelectionChanged="Calendar1_SelectionChanged">

<WeekendDayStyle

BackColor="Green"

/>

<SelectedDayStyle

BackColor="Red"

/></asp:Calendar><asp:Lab

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論