版權(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ù)器控件和客戶端腳本4.1控件概述4.2HTML服務(wù)器控件4.3標(biāo)準(zhǔn)控件4.4驗(yàn)證控件4.5用戶控件與自定義服務(wù)器控件4.6用JavaScript處理頁(yè)面和服務(wù)器控件4.7客戶端回調(diào)4.8文件的上傳和郵件發(fā)送4.9綜合應(yīng)用4.1控件概述ASP.NET提供了兩種不同類(lèi)型的控件:
HTML服務(wù)器控件Web服務(wù)器控件區(qū)別:(1)HTML服務(wù)器控件默認(rèn)不會(huì)在服務(wù)器端運(yùn)行,直接轉(zhuǎn)化為HTML標(biāo)簽,由瀏覽器顯示,如果需要服務(wù)器執(zhí)行需要指定。(2)Web服務(wù)器控件由服務(wù)器端的編譯運(yùn)行然后轉(zhuǎn)換為HTML發(fā)送給瀏覽器。此外,ASP.NET還提供了驗(yàn)證控件,用于檢查用戶的輸入。用戶也可以自定義控件。4.2HTML服務(wù)器控件4.2.1HTML服務(wù)器控件的層次結(jié)構(gòu)HTML服務(wù)器控件位于名稱(chēng)空間System.Web.UI.HtmlControls。圖4.1顯示了HTML服務(wù)器控件的層次結(jié)構(gòu)。圖4.1HTML服務(wù)器控件的層次結(jié)構(gòu)4.2.2HTML服務(wù)器控件的基本語(yǔ)法定義
HTML服務(wù)器控件的基本語(yǔ)法格式如下:<HTML標(biāo)記
Id="控件名稱(chēng)"Runat="Server">HTML服務(wù)器控件是由HTML標(biāo)記所衍生出來(lái)的新功能,在所有的HTML服務(wù)器控件的語(yǔ)法中,最前端是HTML標(biāo)記,不同控件所用的標(biāo)記不同;Runat=“Server”表示控件將會(huì)在服務(wù)器端執(zhí)行;Id用來(lái)設(shè)置控件的名稱(chēng),在同一程序中各控件的Id均不相同,Id屬性允許以編程方式引用該控件。表4.1列舉了HTML服務(wù)器控件與HTML標(biāo)記的對(duì)應(yīng)表示,并標(biāo)示出它們所屬的類(lèi)別。4.2.4HTML服務(wù)器控件的應(yīng)用服務(wù)器不會(huì)處理普通的HTML控件,它們將直接被發(fā)送到客戶端,由瀏覽器進(jìn)行顯示。HTML控件集成在VisualStudio2008的【工具箱】的【HTML】選項(xiàng)卡中,如圖4.2所示。如果要讓HTML控件能在服務(wù)器端被處理,就要將它們轉(zhuǎn)換為HTML服務(wù)器控件。將普通HTML控件轉(zhuǎn)換為HTML服務(wù)器控件,需添加runat=“server”屬性。為其添加runat屬性,將它轉(zhuǎn)換為HTML服務(wù)器控件,如下所示:<inputtype="text"id="TxtName"size="30"runat="server"/>圖4.2HTML控件4.2.4HTML服務(wù)器控件的應(yīng)用【例4.1】使用HTML服務(wù)器控件完成一個(gè)表單,實(shí)現(xiàn)簡(jiǎn)單的用戶登錄和提交留言。服務(wù)器端編程獲取用戶所填寫(xiě)的內(nèi)容并輸出。頁(yè)面設(shè)計(jì):頁(yè)面中放置兩個(gè)文本框(User(ID值)用于輸入用戶名、Password用于輸入密碼),兩個(gè)多行文本框(messeage用于顯示登錄或留言信息、comment用于輸入留言信息),兩個(gè)按鈕(BtnLogin表示登錄單擊的“確定”、BtnOK表示發(fā)表留言的“提交”)。圖4.3example4-1的界面4.2.4HTML服務(wù)器控件的應(yīng)用按鈕BtnLogin的單擊事件BtnLogin_ServerClick用于判斷用戶是否輸入正確的用戶名和密碼。如果正確登錄,則在多行文本框message中顯示“成功登錄系統(tǒng)”,否則顯示“用戶名或密碼錯(cuò)誤”。按鈕BtnOK的服務(wù)器端單擊事件為BtnOK_ServerClick,用來(lái)接受多行文本框comment的信息,并顯示在message中。程序運(yùn)行結(jié)果如圖4.4所示。
圖4.4例4.1運(yùn)行結(jié)果命令按鈕的HTML代碼:
<inputid="BtnLogin"type="button"value="確定"runat="server"onserverclick="BtnLogin_onclick"/><br/>命令按鈕的后臺(tái)代碼:protectedvoidBtnLogin_onclick(objectsender,EventArgse){if((txtName.Value=="aaa")&(txtpwd.Value=="123456")){comment.Disabled=false;BtnLogin.Disabled=false;message.Value="成功登錄系統(tǒng)";}else{message.Value="用戶名或密碼錯(cuò)誤";}}提交按鈕的后臺(tái)代碼:protectedvoidBtnOK_onclick(objectsender,EventArgse){message.Value="您的留言時(shí):"+comment.Value;}4.3標(biāo)準(zhǔn)控件在VisualStudio2008的【工具箱】中,只有HTML選項(xiàng)卡中的控件是瀏覽器端控件,其他各種控件都是服務(wù)器控件。其中【標(biāo)準(zhǔn)】選項(xiàng)卡中的控件是較常用的控件。在類(lèi)庫(kù)中,所有的網(wǎng)頁(yè)控件都是從System.Web.UI.Control.WebControls直接或間接派生而來(lái)的。圖4.5Web服務(wù)器控件的層次結(jié)構(gòu)4.3標(biāo)準(zhǔn)控件1.服務(wù)器控件的基本語(yǔ)法ASP.NET服務(wù)器控件的基本語(yǔ)法格式如下:<asp:控件類(lèi)型名ID="控件id"屬性名1="屬性值1"屬性名2="屬性值2"…runat="server"/>控件標(biāo)簽以asp:開(kāi)頭,這是Web服務(wù)器控件的標(biāo)記前綴??丶?lèi)型名為控件的類(lèi)型或類(lèi),如TextBox、。runat
說(shuō)明控件在服務(wù)器端運(yùn)行。需要明確的是,一般情況下,標(biāo)簽是成對(duì)出現(xiàn)的,但若此標(biāo)簽僅占一行,也可在標(biāo)簽最后加一個(gè)“/”作為結(jié)束。許多Web服務(wù)器控件可以在起始和結(jié)束標(biāo)簽之間使用內(nèi)部HTML。例如,下面的關(guān)于某個(gè)TextBox控件的兩種不同的寫(xiě)法是等價(jià)的:<asp:TextBoxID="txtBookName"runat="server"Width="250px"Text="請(qǐng)輸入姓名:"/><asp:TextBoxID=“txtBookName”runat=“server”Width=“250px”>請(qǐng)輸入姓名:</asp:TextBox>4.3標(biāo)準(zhǔn)控件圖4.6是一個(gè)注冊(cè)表單的界面,下面將以此為例展開(kāi)Web服務(wù)器標(biāo)準(zhǔn)控件的介紹。圖4.6注冊(cè)表單4.3.1輸入與顯示控件1.TextBox控件TextBox控件是用得最多的控件之一,該控件顯示為文本框,可以用來(lái)顯示數(shù)據(jù)或者輸入數(shù)據(jù)。TextBox控件定義的語(yǔ)法示例如下:<asp:TextBoxID="TxtPwd"runat="server"TextMode="Password"/>此行代碼提供給用戶一個(gè)輸入密碼的文本框,效果如圖4.6所示。屬性/事件/方法說(shuō)明AutoPostBack指示在輸入信息時(shí),數(shù)據(jù)是否實(shí)時(shí)自動(dòng)回發(fā)到服務(wù)器MaxLength文本框中最多允許的字符數(shù)ReadOnly指示能否更改
TextBox控件的內(nèi)容Rows多行文本框中顯示的行數(shù)TextTextBox控件的文本內(nèi)容TextModeTextBox控件的行為模式(單行、多行或密碼)Wrap指示多行文本框內(nèi)的文本內(nèi)容是否換行TextChanged文本框的內(nèi)容改變時(shí)發(fā)生的事件Focus()使光標(biāo)置于文本框中的方法表4.5TextBox控件的常用屬性、事件和方法4.3.1輸入與顯示控件其中有一個(gè)重要的屬性:TextMode。該屬性包括三個(gè)選項(xiàng)。(1)SingleLine:?jiǎn)涡芯庉嬁?。?)MultiLine:帶滾動(dòng)條的多行文本框。(3)PassWord:密碼輸入框,所有輸入字符都用特殊字符(例如“*”)來(lái)顯示。4.3.1輸入與顯示控件2.Label控件Label控件用于在Web頁(yè)面上顯示文本。其控件定義的語(yǔ)法示例如下:<asp:Labelid="Label1"Text="密碼提示回答:"runat="server"/>除了具體表4.3所示的Web控件標(biāo)準(zhǔn)屬性外,Label控件還有幾個(gè)常用屬性,如表4.6所示。屬性說(shuō)明runat規(guī)定該控件是一個(gè)服務(wù)器控件。必須設(shè)置為
"server"Text在
label中顯示的文本AccessKey指定熱鍵的按鍵AssociatedControlID將Label控件與窗體中另一個(gè)服務(wù)器控件關(guān)聯(lián)起來(lái)表4.6Label控件的常用屬性4.3.1輸入與顯示控件可以利用Label控件屬性AssociatedControlID和AccessKey為窗體中的其他控件添加熱鍵。例如:<asp:Label
ID="Label1"
Runat="server"
AccessKey="N"
AssociatedControlID="Textbox1">User<u>n </u>ame</asp:Label><asp:Textbox
ID="TextBox1"
Runat="server"/>當(dāng)鼠標(biāo)單擊Label控件時(shí)或按下Alt+N組合鍵,焦點(diǎn)將跳到TextBox1上,自動(dòng)激活了與之關(guān)聯(lián)的文本框。
圖4.7利用Label添加熱鍵4.3.1輸入與顯示控件3.Literal控件Literal控件的工作方式類(lèi)似于Label控件。用于在瀏覽器上顯示在整個(gè)過(guò)程中不發(fā)生變化的文本。其控件定義的語(yǔ)法示例如下:<asp:Literalid="Literal1"Text="新用戶注冊(cè)"runat="server"/>表4.7列出了Literal控件的常用屬性。屬
性說(shuō)明Runat規(guī)定該控件是一個(gè)服務(wù)器控件。必須設(shè)置為
"server"Text規(guī)定要顯示的文本Mode指定控件對(duì)所添加的標(biāo)記的處理方式表4.7Literal控件的常用屬性4.3.1輸入與顯示控件Literal控件支持
Mode屬性,該屬性用于指定控件對(duì)所添加的標(biāo)記的處理方式??梢詫?/p>
Mode屬性設(shè)置為以下值。(1)Transform:添加到控件中的任何標(biāo)記都將進(jìn)行轉(zhuǎn)換,以適應(yīng)請(qǐng)求瀏覽器的協(xié)議。(2)PassThrough:添加到控件中的任何標(biāo)記都將按原樣呈現(xiàn)在瀏覽器中。
(3)Encode:添加到控件中的任何標(biāo)記都將使用
HtmlEncode方法進(jìn)行編碼,該方法將把
HTML編碼轉(zhuǎn)換為其文本表示形式。例如:<asp:LiteralID="Literal1"runat="Server"Mode="Encode"Text="<b>新用戶注冊(cè)!<b>"</asp:Literal>瀏覽器中會(huì)顯示“<b>歡迎注冊(cè)!<b>”。4.3.2按鈕控件中設(shè)置了三種按鈕:Button、LinkButton和ImageButton。當(dāng)用戶單擊這三種類(lèi)型按鈕中的任何一種時(shí),都會(huì)向服務(wù)器提交一個(gè)窗體,當(dāng)前頁(yè)被提交給服務(wù)器并在那里進(jìn)行處理,可為下列事件之一創(chuàng)建事件處理程序。(1)Page_load事件:因?yàn)榘粹o總是將頁(yè)提交給服務(wù)器,所以該方法總是在運(yùn)行。倘若只是要提交相應(yīng)窗體,并不關(guān)心單擊的是哪個(gè)按鈕,則使用頁(yè)的Page_load事件。(2)Click事件:如果需要知道具體單擊的是哪個(gè)按鈕,則編寫(xiě)對(duì)應(yīng)按鈕的Click事件處理程序。4.3.2按鈕控件屬性/事件/方法說(shuō)明BackColor獲取或設(shè)置背景色BordorColor獲取或設(shè)置邊框顏色CommandArgument獲取或設(shè)置可選參數(shù),該參數(shù)與CommandName一起傳遞到Command事件Text獲取或設(shè)置在Button控件中顯示的文本標(biāo)題Click在單擊Button控件時(shí)發(fā)生的服務(wù)器端事件表4.8Button控件的常用屬性、事件和方法1.Button控件Button控件是Web窗體中的常見(jiàn)控件。Button控件定義的語(yǔ)法示例如下:<asp:Buttonid="Button1"Text="注冊(cè)"runat="server"/>4.3.2按鈕控件(1)Click事件:在單擊Button控件時(shí)發(fā)生。在開(kāi)發(fā)過(guò)程中,雙擊Button按鈕,便可為其自動(dòng)產(chǎn)生事件觸發(fā)函數(shù)。以下是代碼示例:protectedvoidButton1_Click(objectsender,EventArgse){ Response.Write("注冊(cè)成功,歡迎您!"); }4.3.2按鈕控件2.LinkButton控件LinkButton控件定義的語(yǔ)法示例如下:<asp:LinkButtonid="LinkButton1"Onclick="LinkButton1_Click"runat="server">退出</asp:LinkButton>上面的代碼定義了一個(gè)用于退出的超鏈接按鈕。LinkButton對(duì)象的成員與Button對(duì)象非常相似??梢詾樯厦娑x的LinkButton1添加如下事件代碼: protectedvoidLinkButton1_Click(objectsender,EventArgse) {
Response.Write("謝謝訪問(wèn),下次再來(lái)哦,88!");
Response.End(); }4.3.2按鈕控件3.ImageButton控件LinkButton控件定義的語(yǔ)法示例如下:<asp:ImageButtonID="ImageButton1"runat="server"ImageUrl="~/image/reset.gif"Onclick="ImageButton1_Click"runat="server"/>上面的代碼定義了一個(gè)用于重置的按鈕
。表4.9列出了ImageButton控件的常用屬性、事件和方法。4.3.2按鈕控件屬性/事件/方法說(shuō)
明AlternateText獲取或設(shè)置當(dāng)圖像不可用時(shí),控件中顯示的替換文本BackColor獲取或設(shè)置背景色BordorColor獲取或設(shè)置邊框顏色CommandArgument獲取或設(shè)置可選參數(shù),該參數(shù)與CommandName一起傳遞到Command事件ImageAlign獲取或設(shè)置ImageButton控件相對(duì)于網(wǎng)頁(yè)上其他元素的對(duì)齊方式ImageUrl獲取或設(shè)置在ImageButton控件中顯示的圖像的位置Click在單擊ImageButton控件時(shí)發(fā)生的服務(wù)器端事件PostBackUrl獲取或設(shè)置單擊ImageButton時(shí)從當(dāng)前頁(yè)發(fā)送到的網(wǎng)頁(yè)的URL。默認(rèn)為空,即本頁(yè)表4.9ImageButton控件的常用屬性、事件和方法4.3.3選擇和列表控件1.RadioButton控件RadioButton控件表現(xiàn)為Web頁(yè)面上的單選按鈕。它允許用戶選擇true狀態(tài)或false狀態(tài),但是只能選擇其一。窗體上的一個(gè)單選按鈕沒(méi)有什么意義,在使用時(shí)通常有兩個(gè)以上的RadioButton控件組成一組,以提供互相排斥的選項(xiàng)。頁(yè)面上的一組RadioButton控件可以定義如下:<asp:RadioButtonID="RadioButtonMale"runat="server"GroupName="Group1"Text="男"AutoPostBack="True"/><asp:RadioButtonID="RadioButtonFemale"runat="server"GroupName="Group1"Text="女"AutoPostBack="True"/>表4.10RadioButton控件的常用屬性和事件屬性/事件說(shuō)明Checked布爾值,規(guī)定是否選定單選按鈕AutoPostBack布爾值,規(guī)定在
Checked屬性被改變后,是否立即回傳表單。默認(rèn)是
falseGroupName該單選按鈕所屬控件組的名稱(chēng)CheckedChanged當(dāng)
Checked被改變時(shí),被執(zhí)行的函數(shù)的名稱(chēng)Text單選按鈕旁邊的文本TextAlign文本應(yīng)出現(xiàn)在單選按鈕的哪一側(cè)(左側(cè)還是右側(cè))4.3.3選擇和列表控件(1)如果無(wú)須直接對(duì)控件的選擇事件進(jìn)行響應(yīng),而只關(guān)心單選按鈕的狀態(tài),那么可以在窗體發(fā)送到服務(wù)器后測(cè)試單選按鈕,判斷RadioButton控件的Checked屬性,若為T(mén)ure,則表示單選按鈕已選定。(2)如果需要立即響應(yīng)用戶更改控件狀態(tài)的事件,那么要為控件的CheckedChanged事件創(chuàng)建一個(gè)事件處理程序。默認(rèn)情況下,CheckedChanged事件并不馬上導(dǎo)致向服務(wù)器發(fā)送頁(yè),若要使CheckedChanged事件即時(shí)發(fā)送,必須將RadioButton控件的AutoPostBack屬性設(shè)置為T(mén)rue。4.3.3選擇和列表控件圖4.8
RadioButton控件示例【例4.2】RadioButton控件的Checked屬性和CheckedChanged事件。頁(yè)面設(shè)計(jì):頁(yè)面中放置兩個(gè)RadioButton控件。它們的GroupName屬性相同,表明它們是一組的。被選中的按鈕的Checked屬性為T(mén)rue,因?yàn)樵O(shè)置了AutoPostBack為T(mén)ure,單選按鈕的狀態(tài)改變會(huì)即時(shí)回傳,觸發(fā)按鈕組的CheckedChanged事件。protectedvoidRadioButton_CheckedChanged(objectsender,EventArgse){if(RadioButton1.Checked){Label1.Text="你是男生";}else{Label1.Text="你是女生";}}在后臺(tái)編寫(xiě)如下方法,將兩個(gè)單選按鈕的CheckedChanged事件都注冊(cè)到該方法上:4.3.3選擇和列表控件2.RadioButtonList控件雖然多個(gè)RadioButton控件也可以組成單選按鈕組以實(shí)現(xiàn)互斥選擇,但有多個(gè)選項(xiàng)供用戶進(jìn)行選擇時(shí),使用RadioButtonList控件更加方便。RadioButtonList控件定義示例如下,
<asp:RadioButtonListid="RadioButtonList1"runat="server"AutoPostBack="True"> <asp:ListItemValue="0">男</asp:ListItem> <asp:ListItemValue="1">女</asp:ListItem> <asp:ListItemValue="2">保密</asp:ListItem></asp:RadioButtonList>4.3.3選擇和列表控件表4.11列出了RadioButtonList控件的常用屬性和事件。屬性/事件說(shuō)明DataMemberDataSource中要綁定的表名DataSource填充該列表的列表項(xiàng)的數(shù)據(jù)源Items獲得列表控件中的項(xiàng)目集合RepeatColumns獲得或設(shè)置控件中要顯示的列數(shù)RepeatDirection獲得或設(shè)置一個(gè)指示該控件垂直顯示還是水平顯示的值SelectedIndex獲得或設(shè)置列表中第一個(gè)被選項(xiàng)的索引即索引最小的項(xiàng)SelectedItem獲得第一個(gè)被選項(xiàng)SelectedValue獲得第一個(gè)被選項(xiàng)的值TextAlign獲得或設(shè)置單選按鈕的文本對(duì)齊方式SelectedIndexChanged當(dāng)在RadioButtonList中改變選擇時(shí)觸發(fā)的事件表4.11RadioButtonList控件的常用屬性和事件4.3.3選擇和列表控件RadioButtonList控件的Items集合的成員和列表中的每一項(xiàng)對(duì)應(yīng),要確定選中了哪些項(xiàng),應(yīng)測(cè)試每項(xiàng)的Selected屬性。ListItem的基本屬性如表4.12所示。屬性/事件說(shuō)
明Text每個(gè)選項(xiàng)的文本Value每個(gè)選項(xiàng)的值Selected選項(xiàng)的狀態(tài),Ture表示默認(rèn)選中表4.12ListItem的基本屬性如何向RadioButtonList控件中添加項(xiàng)?使用界面的方式選擇控件,單擊右鍵,選擇屬性,在屬性對(duì)話框中選擇Items,點(diǎn)擊,在ListItem集合編輯器中添加項(xiàng)。(2)編程實(shí)現(xiàn):
protectedvoidPage_Load(objectsender,EventArgse){this.RadioButtonList1.Items.Add("男");this.RadioButtonList1.Items.Add("女");this.RadioButtonList1.Items.Add("保密");}4.3.3選擇和列表控件3.CheckBox控件CheckBox控件定義示例如下:<asp:CheckBoxID="CheckBox1"runat="server"Text="我已閱讀并同意遵守網(wǎng)站服務(wù)條款"/>表4.13列出了CheckBox控件的常用屬性和事件。屬性/事件說(shuō)明Checked布爾值,規(guī)定是否選定單選按鈕AutoPostBack布爾值,規(guī)定在
Checked屬性被改變后,是否立即回傳表單。默認(rèn)是
falseCheckedChanged當(dāng)
Checked被改變時(shí),被執(zhí)行的函數(shù)的名稱(chēng)TextCheckBox控件旁邊的文本TextAlign文本應(yīng)出現(xiàn)在CheckBox的哪一側(cè)(左側(cè)還是右側(cè))表4.13
CheckBox控件的常用屬性和事件4.3.3選擇和列表控件4.CheckBoxList控件CheckBoxList控件定義如下:<asp:CheckBoxListid="CheckBoxList1"runat="server"> <asp:ListItemValue="琴">琴</asp:ListItem> <asp:ListItemValue="棋">棋</asp:ListItem> <asp:ListItemValue="書(shū)">書(shū)</asp:ListItem> <asp:ListItemValue="畫(huà)">畫(huà)</asp:ListItem></asp:CheckBoxList>4.3.3選擇和列表控件【例4.3】CheckBoxList控件的SelectedIndexChanged事件。頁(yè)面設(shè)計(jì):拖放一個(gè)CheckBoxList控件到頁(yè)面上,在它的“智能標(biāo)記”上選擇“編輯項(xiàng)”,打開(kāi)“ListItem集合編輯器”,單擊“添加”,為單選按鈕列表添加幾個(gè)選項(xiàng),分別輸入Text、Value和Selected屬性的值。將該CheckBoxList控件的AutoPostBack屬性設(shè)置為T(mén)rue,同時(shí)定義一個(gè)SelectedIndexChanged事件。圖4.9CheckBoxList控件示例protectedvoidCheckBoxList1_SelectedIndexChanged(objectsender,EventArgse){inti;stringstr="你的愛(ài)好有:<br>";for(i=0;i<CheckBoxList1.Items.Count;i++){if(CheckBoxList1.Items[i].Selected)str+=CheckBoxList1.Items[i].Text+"";Label1.Text=str;}}4.3.3選擇和列表控件5.DropDownList控件DropDownList控件在Web頁(yè)面上呈現(xiàn)為下拉列表框,它允許用戶從預(yù)定義的多個(gè)選項(xiàng)中選擇一項(xiàng)。DropDownList控件定義示例如下:您的學(xué)歷:<asp:DropDownListid="DropDownList1"runat="server"> <asp:ListItemValue="0">博士</asp:ListItem> <asp:ListItemValue="1">碩士</asp:ListItem> <asp:ListItemValue="2">本科</asp:ListItem></asp:DropDownList>4.3.3選擇和列表控件屬性/事件說(shuō)明AutoPostBack指示當(dāng)用戶改變選項(xiàng)時(shí)該控件是否應(yīng)當(dāng)自動(dòng)地回發(fā)到服務(wù)器DataMemberDataSource中要綁定的表的名稱(chēng)DataSource填充該列表的項(xiàng)目的數(shù)據(jù)源DataTextField提供列表的文本的數(shù)據(jù)源字段的名稱(chēng)DataValueField提供一個(gè)列表項(xiàng)的值的數(shù)據(jù)源字段的名稱(chēng)Items獲得列表控件中的項(xiàng)目集合SelectedIndex獲得或設(shè)置列表中被選項(xiàng)的索引SelectedItem獲得列表中的被選項(xiàng)SelectedValue獲得列表中被選項(xiàng)的值SelectedIndexChanged當(dāng)列表控件的選擇項(xiàng)發(fā)生變化時(shí)觸發(fā)表4.14列出了DropDownList控件的常用屬性和事件。表4.14DropDownList控件的常用屬性和事件4.3.3選擇和列表控件【例4.4】DropDownList控件的SelectedIndexChanged事件。頁(yè)面設(shè)計(jì):拖放一個(gè)DropDownList控件到頁(yè)面上,在它的“智能標(biāo)記”上選擇“編輯項(xiàng)”,打開(kāi)“ListItem集合編輯器”,單擊“添加”,為下拉列表框添加幾個(gè)選項(xiàng),分別輸入Text、Value和Selected屬性的值(見(jiàn)下面代碼中所示)。將該DropDownList控件的AutoPostBack屬性設(shè)置為T(mén)rue,同時(shí)定義一個(gè)SelectedIndexChanged事件。同時(shí)添加兩個(gè)Label控件和一個(gè)TextBox控件,ID為L(zhǎng)abel1控件的Text屬性設(shè)置為“密碼提示問(wèn)題:”。ID為L(zhǎng)abel2控件用于顯示所選擇的密碼提示問(wèn)題,TextBox控件用于輸入答案。圖4.10
DropDownList控件示例protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse){switch(DropDownList1.SelectedValue){case"1":Label1.Text="你母親的生日是:";break;case"2":Label1.Text="你最喜歡看的書(shū)是:";break;case"3":Label1.Text="你最難忘的日子是:";break;}}SelectedIndexChanged事件的處理代碼:4.3.3選擇和列表控件6.ListBox控件ListBox控件定義示例如下:身份:<asp:ListBoxID="ListBox1"runat="server"> <asp:ListItemValue="0">已工作</asp:ListItem> <asp:ListItemValue="1">大學(xué)生</asp:ListItem><asp:ListItemValue="2">中學(xué)生/中專(zhuān)技校</asp:ListItem><asp:ListItemValue="3">以上都不是</asp:ListItem></asp:ListBox>列表示例SelectionMode屬性的值4.3.3選擇和列表控件【例4.5】ListBox控件的SelectedIndexChanged事件。頁(yè)面設(shè)計(jì):拖放一個(gè)ListBox控件到頁(yè)面上,在它的“智能標(biāo)記”上選擇“編輯項(xiàng)”,打開(kāi)“ListItem集合編輯器”,單擊“添加”,為下拉列表框添加幾個(gè)選項(xiàng),分別輸入Text、Value和Selected屬性的值。將該ListBox控件的AutoPostBack屬性設(shè)置為T(mén)rue,同時(shí)定義一個(gè)SelectedIndexChanged事件。圖4.11ListBox控件示例protectedvoidListBox1_SelectedIndexChanged(objectsender,EventArgse){inti;stringstr="您選擇了這些課程:<br>";for(i=0;i<ListBox1.Items.Count;i++){if(ListBox1.Items[i].Selected)str+=ListBox1.Items[i].Text+"";Label2.Text=str;}}SelectedIndexChanged事件的處理代碼:4.3.3選擇和列表控件7.BulletedList控件BulletedList控件用于創(chuàng)建一個(gè)無(wú)序的或有序的項(xiàng)列表,表4.15列出了BulletedList控件的主要屬性。屬
性說(shuō)
明AppendDataBoundItems指示在添加數(shù)據(jù)綁定的項(xiàng)目時(shí)應(yīng)當(dāng)保留還是清除靜態(tài)定義的項(xiàng)目BulletImageUrl獲得或設(shè)置到用做項(xiàng)目符號(hào)的圖像的路徑BulletStyle確定項(xiàng)目符號(hào)的樣式DataMemberDataSource中要綁定的表的名稱(chēng)DataSource用來(lái)填充該列表控件的列表項(xiàng)的數(shù)據(jù)源DataSourceID提供數(shù)據(jù)的數(shù)據(jù)源組件的IDDataTextField提供列表項(xiàng)的文本的數(shù)據(jù)源字段的名稱(chēng)DataValueField提供列表項(xiàng)的值的數(shù)據(jù)源字段的名稱(chēng)DisplayMode確定如何顯示列表項(xiàng):純文本、鏈接按鈕或超鏈接FirstBulletNumber獲得或設(shè)置編號(hào)的起始值Items獲得列表控件中的列表項(xiàng)的集合Target指示超鏈接模式下的目標(biāo)框架表4.15BulletedList控件的屬性4.3.3選擇和列表控件其中的BulletStyle枚舉值如表4.16所示。枚舉值說(shuō)明Circle表示項(xiàng)目符號(hào)編號(hào)樣式設(shè)置為“○”空圈CustomImage編號(hào)樣式設(shè)置為自定義圖片,圖片由BulletImageUrl屬性指定Disc編號(hào)樣式設(shè)置為“●”實(shí)圈LowerAlpha編號(hào)樣式設(shè)置為小寫(xiě)字母格式,如a、b、c、d等LowerRoman編號(hào)樣式設(shè)置為小寫(xiě)羅馬數(shù)字格式,如i、ii、iii、iv等NotSet表示不設(shè)置項(xiàng)目符號(hào)編號(hào)樣式Numbered編號(hào)樣式為數(shù)字格式,如1、2、3、4等Square編號(hào)樣式為“■”實(shí)體黑方塊UpperAlpha編號(hào)樣式為大寫(xiě)字母格式,如A、B、C、D等UpperRoman編號(hào)樣式為大寫(xiě)羅馬數(shù)字格式,如I、II、III、IV等表4.16BulletStyle枚舉值列表4.3.3選擇和列表控件以下是一個(gè)BulletedList控件的定義示例:<div> <asp:BulletedListID="BulletedList1"BulletStyle="Circle"runat="server"> <asp:ListItem>第一項(xiàng)</asp:ListItem> <asp:ListItem>第二項(xiàng)</asp:ListItem> <asp:ListItemText="第三項(xiàng)"></asp:ListItem> <asp:ListItemText="第四項(xiàng)"Value="4"></asp:ListItem> </asp:BulletedList></div>圖4.12BulletedList控件示例4.3.4HyperLink控件HyperLink服務(wù)器控件在Web頁(yè)上創(chuàng)建超級(jí)鏈接,使用戶可以在應(yīng)用程序中的頁(yè)之間移動(dòng)跳轉(zhuǎn)到其他頁(yè)面,相當(dāng)于HTML中的<ahref>元素。HyperLink控件定義的語(yǔ)法格式如下:<asp:HyperLinkID="HyperLink1"runat="server">網(wǎng)站服務(wù)條款</asp:HyperLink>此行代碼定義一個(gè)超級(jí)鏈接
。。屬
性說(shuō)明ImageUrl顯示此鏈接的圖像的
URLNavigateUrl該鏈接的目標(biāo)
URL,當(dāng)用戶單擊鏈接時(shí)會(huì)轉(zhuǎn)向此URLTargetURLURL的目標(biāo)框架,默認(rèn)為本框架,_blank表示新窗口Text顯示該鏈接的文本表4.17HyperLink控件的常用屬性4.3.5Table控件Table控件定義的語(yǔ)法格式如下:<asp:Tableid="Table1"runat="server"> <asp:TableRow> <asp:TableCell></asp:TableCell> <asp:TableCell></asp:TableCell> </asp:TableRow></asp:Table>如果希望在運(yùn)行時(shí)通過(guò)代碼向表中添加行和列時(shí),則可以使用Table服務(wù)器控件。對(duì)
象成
員功
能TableBackImageUrlCaptionCaptionAlignCellPaddingCellSpacingRows表格的背景圖像的
URL表格的標(biāo)題標(biāo)題文本的對(duì)齊方式Table中單元格內(nèi)容和單元格邊框之間的空間量(單位:像素)Table控件中相鄰單元格之間的空間量(以像素為單位)Table控件中行的集合TableRowHorizontalAlighVerticalAlighCells獲取或設(shè)置行內(nèi)容的水平對(duì)齊方式獲取或設(shè)置行內(nèi)容的垂直對(duì)齊方式獲取TableCell對(duì)象的集合,這些對(duì)象表示Table控件中的行的單元格TableCellColumnSpanRowSpanText獲取或設(shè)置該單元格在Table跨越的列數(shù)獲取或設(shè)置Table控件中單元格跨越的行數(shù)獲取或設(shè)置單元格的文本內(nèi)容表4.18Table及內(nèi)部對(duì)象部分屬性4.3.5Table控件動(dòng)態(tài)地創(chuàng)建一個(gè)Table包含三個(gè)步驟:(1)創(chuàng)建TableRow對(duì)象以表示表中的行。(2)創(chuàng)建TableCell對(duì)象,表示行中的單元格,并將單元格添加到行中。(3)將TableRow添加到Table控件的Rows集合中?!纠?.6】Table控件中動(dòng)態(tài)生成行和列。頁(yè)面設(shè)計(jì):拖放兩個(gè)DropDownList控件到頁(yè)面上,用來(lái)接收用戶選擇要生成表格的行數(shù)和列數(shù)。在下拉列表框的“智能標(biāo)記”上選擇“編輯項(xiàng)”,打開(kāi)“ListItem集合編輯器”,單擊“添加”,為下拉列表框添加幾個(gè)選項(xiàng),分別輸入Text、Value和Selected屬性對(duì)應(yīng)的數(shù)字。拖放一個(gè)Table,設(shè)置一些簡(jiǎn)單屬性,不添加行。拖放一個(gè)“確認(rèn)”按鈕,編寫(xiě)該按鈕的服務(wù)器端Click事件的代碼,動(dòng)態(tài)生成一個(gè)Table。本例網(wǎng)頁(yè)example4-6.aspx程序代碼。protectedvoidButton1_Click(objectsender,EventArgse){intnumrow=int.Parse(DropDownList1.SelectedValue);intnumcell=int.Parse(DropDownList2.SelectedValue);Table1.BorderWidth=2;Table1.BorderColor=System.Drawing.Color.Blue;for(inti=0;i<numrow;i++){TableRowtr=newTableRow();for(intj=0;j<numcell;j++){TableCelltc=newTableCell();tc.Text=i.ToString()+j.ToString();tr.Cells.Add(tc);}Table1.Rows.Add(tr);}}4.3.5Table控件本例中Table控件是動(dòng)態(tài)生成的。根據(jù)兩個(gè)下拉列表框中用戶選擇的值確定行數(shù)和列數(shù),利用兩重循環(huán)生成Table,外重循環(huán)生成行,得到TableRow對(duì)象;內(nèi)重循環(huán)生成行中的單元格,得到TableCell對(duì)象。程序運(yùn)行結(jié)果如圖4.13所示。圖4.13Table控件示例4.3.6AdRotator控件AdRotator控件用于在網(wǎng)頁(yè)上顯示廣告,定義示例如下:<asp:AdRotatorid="AdRotator1"runat="server"Width="100px"Height="60px"AdvertisementFile=".\\ad\\adXml.xml"></asp:AdRotator>除了從WebControl繼承的屬性外,表4.19列出了AdRotator控件包含的其他屬性和事件。表4.19AdRotator控件的屬性和事件名稱(chēng)類(lèi)型說(shuō)
明AdvertisementFileString包含廣告及廣告屬性列表的XML路徑AlternateTextFieldString廣告文件或數(shù)據(jù)字段的元素名稱(chēng),在其中儲(chǔ)存了替換文本。默認(rèn)值為AlternateTextDataMemberString控件將綁定到的數(shù)據(jù)列表的名稱(chēng)DataSourceObject控件將要從中獲取數(shù)據(jù)的對(duì)象DataSourceIDString控件將要從中獲取數(shù)據(jù)的控件的IDImageUrlFieldString廣告文件或數(shù)據(jù)字段的元素名稱(chēng),其中儲(chǔ)存了圖片的URL。默認(rèn)值為ImageUrlNavigateUrlFieldString廣告文件或數(shù)據(jù)字段的元素名稱(chēng),在其中儲(chǔ)存了要導(dǎo)航到的URL。默認(rèn)值為NavigateUrlTargetString單擊AdRotator時(shí)用于顯示目錄頁(yè)面內(nèi)容的瀏覽器窗口或框架4.3.6AdRotator控件
Target屬性用于指定由哪個(gè)瀏覽器窗口或框架顯示單擊AdRotator控件后的結(jié)果頁(yè)面。它指定是否用結(jié)果頁(yè)面替換當(dāng)前瀏覽器窗口或框架中顯示的當(dāng)前內(nèi)容,或是打開(kāi)一個(gè)新瀏覽器窗口,或是其他的操作。值說(shuō)明_blank在除框架之外未命名的新窗口呈現(xiàn)內(nèi)容_new未文檔化。單擊時(shí)的行為與_blank相同,只不過(guò)后續(xù)的單擊將在同一個(gè)窗口呈現(xiàn),而不用打開(kāi)一個(gè)新窗口_parent在鏈接所在窗口或框架的父窗口或框架呈現(xiàn)內(nèi)容。如果子容器是一個(gè)窗口或頂級(jí)的框架,則與_self相同_self在當(dāng)前焦點(diǎn)所在的窗口或框架呈現(xiàn)內(nèi)容。這是默認(rèn)的行為_(kāi)top在當(dāng)前無(wú)框架的整個(gè)窗口中呈現(xiàn)內(nèi)容表4.20Target屬性的特殊值4.3.6AdRotator控件由于是一個(gè)XML文件,所以廣告文件是一個(gè)使用已定義好的,使用標(biāo)簽描述數(shù)據(jù)的結(jié)構(gòu)化文本文件。表4.21列出了標(biāo)準(zhǔn)標(biāo)簽,它們都包含在尖括號(hào)(<
>)中,并需要一個(gè)匹配的關(guān)閉標(biāo)簽。除了表中列出的標(biāo)簽,也可以包含自定義的標(biāo)簽以便擁有自定義屬性。標(biāo)簽說(shuō)明Advertisements包含整個(gè)廣告文件Ad描述每一個(gè)單獨(dú)的廣告ImageUrl要顯示的圖像的URL。必需NavigateUrl單擊該控件時(shí)定位到的URLAlternateText圖像不可用時(shí)要顯示的文本。在某些瀏覽器中,該文本顯示為工具提示Keyword廣告類(lèi)別。該關(guān)鍵字可用于通過(guò)設(shè)置KeywordFilter屬性過(guò)濾要顯示的廣告Impressions一個(gè)值,指示相對(duì)于XML文件中的其他廣告,該廣告顯示的頻率表4.21在廣告文件中使用的XM標(biāo)簽4.3.6AdRotator控件下面是一個(gè)XML廣告文件ad.xml的例子:<?xmlversion="1.0"encoding="utf-8"?><Advertisements><Ad><ImageUrl>~/image/phei.png</ImageUrl><NavigateUrl>/</NavigateUrl><AlternateText>電子工業(yè)出版社</AlternateText><Keyword>門(mén)戶</Keyword><Impressions>20</Impressions></Ad><Ad><ImageUrl>~/image/sohu.gif</ImageUrl><NavigateUrl></NavigateUrl><AlternateText>搜狐</AlternateText><Keyword>門(mén)戶</Keyword><Impressions>80</Impressions></Ad><Ad><ImageUrl>~/image/njnu.jpg</ImageUrl><NavigateUrl></NavigateUrl><AlternateText>南京師范大學(xué)</AlternateText><Keyword>大學(xué)</Keyword><Impressions>50</Impressions></Ad></Advertisements>4.3.6AdRotator控件【例4.7】使用AdRotator控件制作輪換式廣告。頁(yè)面設(shè)計(jì):拖放一個(gè)AdRotator控件到頁(yè)面上,設(shè)置AdvertisementFile屬性。<asp:AdRotatorID="AdRotator1"runat="server" AdvertisementFile="~/App_Data/ad.xml"/>
圖4.14AdRotator控件示例4.3.7Calendar控件Calendar控件實(shí)現(xiàn)一個(gè)傳統(tǒng)的單月份日歷,用戶可使用該日歷查看和選擇日期。當(dāng)需要在網(wǎng)頁(yè)中顯示日期或者需要用戶輸入或確認(rèn)日期時(shí),就需要這樣一個(gè)控件。Calendar控件提供的功能如下:(1)顯示一個(gè)日歷,該日歷會(huì)顯示一個(gè)月份。(2)允許用戶選擇日期、周、月。(3)允許用戶選擇一定范圍內(nèi)的日期。(4)允許用戶移到下一月或上一月。(5)以編程方式控制選定日期的顯示。Calendar控件的最簡(jiǎn)單形式如下:<asp:Calendarid="Calendar1"
runat="server"></asp:Calendar>圖4.15Calendar控件4.3.7Calendar控件除了所有的ASP.NET服務(wù)器控件都從WebControl繼承的屬性外,Calendar控件還包含許多自己的屬性。表4.22中列出了Calendar控件的主要屬性。1.在Calendar控件中選擇日期Calendar控件有4種日期獲取模式,用戶可以選擇一天、一周或一個(gè)月。通過(guò)設(shè)置控件的SelectionMode屬性來(lái)實(shí)現(xiàn)。表4.23列出了SelectionMode屬性。模
式說(shuō)明Day允許用戶選擇單個(gè)日期。這是默認(rèn)值DayWeek允許用戶選擇單個(gè)日期或整周DayWeekMonth允許用戶選擇單個(gè)日期、周或整個(gè)月None不能選擇日期表4.23Calendar控件的SelectionMode屬性4.3.7Calendar控件【例4.8】
Calendar控件獲取日期模式的選擇。頁(yè)面設(shè)計(jì):拖放一個(gè)RadioButton控件到頁(yè)面上,為單選按鈕列表添加幾個(gè)選項(xiàng):None、Day、DayWeek、DayWeekMonth。拖放一個(gè)Calendar控件到頁(yè)面上,簡(jiǎn)單設(shè)置背景、前景色。本例網(wǎng)頁(yè)example4-8.aspx程序代碼。RadioButtonList的AutoPostBack為真,使得單選按鈕列表的選擇改變自動(dòng)回傳,引發(fā)頁(yè)面加載事件Page_load。在Page_load中將Calendar控件的SelectionMode設(shè)置為RadioButtonList中被用戶選中項(xiàng)的值。用戶在Calendar控件中單擊將觸發(fā)Calendar控件的OnSelectionChanged事件,處理該事件在label控件上顯示日期,運(yùn)行效果如圖4.16所示。圖4.16Calendar控件模式Page_Load事件代碼:protectedvoidPage_Load(objectsender,EventArgse){Calendar1.SelectionMode=(CalendarSelectionMode)RadioButtonList1.SelectedIndex;if(Calendar1.SelectionMode==CalendarSelectionMode.None)Calendar1.SelectedDates.Clear();}OnSelectionChanged事件:protectedvoidclick(objectsender,EventArgse){Label2.Text="當(dāng)前選擇的日期是:"+Calendar1.SelectedDate.ToLongDateString();}4.3.7Calendar控件2.控制Calendar控件的外觀許多TableItemStyle類(lèi)型的屬性用于控制日歷每個(gè)部分的樣式。表4.24中列出了這些TableItemStyle類(lèi)型的屬性。名稱(chēng)所設(shè)置樣式的對(duì)象DayHeaderStyle一周中某天DayStyle日期NextPrevStyle月份導(dǎo)航控件OtherMonthDayStyle不在當(dāng)前顯示月份中的日期SelectedDayStyle選中日期SelectorStyle周和月選擇器列TitleStyle標(biāo)題欄TodayDayStyle今天的日期WeekendDayStyle周末日期表4.24Calendar中TableItemStyle類(lèi)型的屬性4.3.7Calendar控件除TableItemStyle類(lèi)型的屬性,還有幾個(gè)可讀寫(xiě)的Boolean類(lèi)型屬性,它們也用于控制日歷的外觀,如表4.25所示。屬性默認(rèn)值控制其可見(jiàn)性的對(duì)象ShowDayHeadertrue一周中每一天的名稱(chēng)ShowGridLinesfalse月份中日期的網(wǎng)格線ShowNextPrevMonthtrue月份導(dǎo)航控件ShowTitletrue標(biāo)題欄表4.25Boolean類(lèi)型的屬性下列代碼設(shè)置了Calendar控件的樣式:<asp:CalendarID="Calendar1"runat="server"SelectionMode="DayWeekMonth"><SelectedDayStyleBackColor="#339966"/><DayStyleBackColor="Aqua" BorderColor="Lime"BorderWidth="1px"/><NextPrevStyleBackColor="#009999"/><TitleStyleBackColor="#66CCFF"/></asp:Calendar>4.3.7Calendar控件自定義Calendar控件的外觀時(shí),BackColor和ForeColor屬性用于設(shè)置背景和文本顏色。DayStyle設(shè)置日樣式,包括背景色、邊框顏色和邊框?qū)挾鹊?。NextPrevStyle用于設(shè)置標(biāo)題欄左端和右端的上一月和下一月的樣式。SelectedDayStyle設(shè)置用戶選定日期的樣式。上述代碼顯示的日歷控件如圖4.17所示。圖4.17自定義Calendar控件的樣式4.3.7Calendar控件3.Calendar控件編程(1)SelectionChanged事件。當(dāng)用戶在Calender控件中選擇一天、一周或整個(gè)月份時(shí),將觸發(fā)SelectionChanged事件。(2)DayRender事件。在Calendar控件呈現(xiàn)到客戶端瀏覽器之前,將組成創(chuàng)建該控件的所有組件。隨著創(chuàng)建每個(gè)單元格,將引發(fā)DayRender事件??梢圆东@該事件。DayRender事件處理程序接收一個(gè)DayRenderEventArgs類(lèi)型的參數(shù)。該對(duì)象有兩個(gè)屬性,它們可以用編程方式讀取。Cell:表示要呈現(xiàn)的單元格的表格單元格對(duì)象。Day:表示呈現(xiàn)在單元格中日期的CalendarDay對(duì)象。(3)VisibleMonthChanged事件。Calendar控件還提供了一個(gè)事件VisibleMonthChanged以確定用戶是否更改了月份?!纠?.9】在Calendar控件中自定義特別日,比如生日,新年,勞動(dòng)節(jié)等。思路:在頁(yè)面加載過(guò)程中,以二維數(shù)組創(chuàng)建節(jié)日列表。在DayRender事件的方法中,將每日與節(jié)日數(shù)字作比較,如果對(duì)應(yīng)節(jié)日數(shù)組中包含對(duì)應(yīng)的值,則創(chuàng)建一個(gè)LiteralControl控件,若是生日或新年還將創(chuàng)建一個(gè)Image控件,并將其添加到該日的Controls集合中。通過(guò)Day對(duì)象的IsOtherMonth屬性的判斷,可以將非當(dāng)前月刪除。運(yùn)行效果如圖4.18所示。圖4.18在Calendar控件中自定義特別日string[,]specialDays=newstring[13,32];protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){Calendar1.VisibleDate=Calendar1.TodaysDate;}intcurrent_month=DateTime.Now.Month;intcurrent_day=DateTime.Now.Day;specialDays[current_month,current_day]=“今天快樂(lè)";specialDays[1,1]="新年快樂(lè)";specialDays[2,14]="情人節(jié)";specialDays[3,8]="婦女節(jié)";specialDays[4,1]="愚人節(jié)";specialDays[5,1]="勞動(dòng)節(jié)";specialDays[7,1]="暑假開(kāi)始";specialDays[7,15]="老媽生日";specialDays[10,1]="國(guó)慶節(jié)";specialDays[11,18]="我的生日";specialDays[12,25]="圣誕快樂(lè)";}Page_Load事件處理代碼:
protectedvoidCalendar1_DayRender(objectsender,DayRenderEventArgse){if(e.Day.IsOtherMonth)e.Cell.Controls.Clear();else{Stylespecialdaystyle=newStyle();specialdaystyle.BackColor=System.Drawing.Color.Red;specialdaystyle.ForeColor=System.Drawing.Color.DarkBlue;specialdaystyle.BorderColor=System.Drawing.Color.DarkGreen;specialdaystyle.BorderWidth=newUnit(5);specialdaystyle.BorderStyle=BorderStyle.Ridge;specialdaystyle.Font.Size=FontUnit.Parse("11pt");try{……..}catch(Exceptionexc){………..}}}try{stringmyday=specialDays[e.Day.Date.Month,e.Day.Date.Day];if(myday!=null){e.Cell.Controls.Add(newLiteralControl("<br>"+myday));if(myday.IndexOf("生日")>=0){ImageMyImage=newImage();MyImage.Height=60;MyImage.Width=60;MyImage.ImageUrl="~/image/cake.jpg";e.Cell.Controls.Add(MyImage);}e.Cell.ApplyStyle(specialdaystyle);}}catch(Exceptionexc){Response.Write(exc.ToString());}}4.3.8Image和ImageMap控件1.Image控件圖像服務(wù)器控件Image可以在Web窗體頁(yè)上顯示圖像,并用服務(wù)器端的代碼管理這些圖像。Image控件定義格式如下: <asp:ImageID="Image1"runat="server"/>Image控件有下列常見(jiàn)屬性:(1)AlternateText:為圖像提供替代文本(輔助功能要求)。(2)ImageAlign:用于將圖像和頁(yè)面中其他HTML元素對(duì)齊??赡艿闹涤蠥bsBottom、AbsMiddle、Baseline、Bottom、Left、Middle、NotSet、Right、TextTop和Top。(3)ImageUrl:用于指定圖片的URL。4.3.8Image和ImageMap控件2.ImageMap控件ImageMap控件定義格式如下:<asp:ImageMapid="ImageMap1"runat="server"ImageUrl="~/image1.jpg”></asp:ImageMap>ImageMap控件的主要屬性包括如下。(1)HotSpotMode:熱點(diǎn)模式,取值為枚舉System.Web.UI.WebControls.HotSpotMode,值如表4.26所示。枚舉值說(shuō)
明NotSet未設(shè)置。雖然名為未設(shè)置,但默認(rèn)情況下會(huì)執(zhí)行定向操作,定向到指定的URL地址。如果未指定URL地址,將定向到Web應(yīng)用程序根目錄Navigate定向操作。定向到指定的URL地址。如果未指定URL地址,默認(rèn)將定向到Web應(yīng)用程序根目錄PostBack回發(fā)操作。單擊熱點(diǎn)區(qū)域后,將執(zhí)行Click事件Inactive無(wú)任何操作,即此時(shí)ImageMap如同一張沒(méi)有熱點(diǎn)區(qū)域的普通圖片表4.26HotSpotMode枚舉值4.3.8Image和ImageMap控件(2)HotSpots:該屬性對(duì)應(yīng)System.Web.UI.WebControls.HotSpot對(duì)象集合。HotSpot類(lèi)是一個(gè)抽象類(lèi),有CircleHotSpot(圓形熱區(qū))、RectangleHotSpot(方形熱區(qū))、PolygonHotSpot(多邊形熱區(qū))3個(gè)子類(lèi)。實(shí)際應(yīng)用中,可以使用上面3種類(lèi)型來(lái)定制圖片的熱點(diǎn)區(qū)域的形狀。(3)AccessKey:用于指定導(dǎo)向ImageMap控件的鍵。(4)AlternateText:為圖像提供替代文本(輔助功能要求)。(5)DescriptionUrl:用于提供指向一個(gè)頁(yè)面的鏈接,該頁(yè)面包含對(duì)該圖像的詳細(xì)描述(復(fù)雜的圖像要求能被理解)。(6)GenerateEmptyAlternateText:為AlternateText屬性設(shè)空字符串值。(7)ImageAlign:用于和頁(yè)面中其他HTML元素對(duì)齊??赡艿闹涤蠥bsBottom、AbsMiddle、
Baseline、Bottom、Left、Middle、NotSet、Right、TextTop和Top。(8)ImageUrl:用于指定圖像的URL。(9)Target:用于在新窗口中打開(kāi)頁(yè)面。Im
溫馨提示
- 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年度個(gè)人藝術(shù)品抵押擔(dān)保合同書(shū)4篇
- 二零二五版智能家居門(mén)窗安裝與維護(hù)服務(wù)合同3篇
- 2025年綠色建材水泥采購(gòu)與施工總承包合同3篇
- 2025年個(gè)人股東對(duì)外股權(quán)轉(zhuǎn)讓協(xié)議范本與股權(quán)變更登記3篇
- 開(kāi)發(fā)需求委托合同(2篇)
- 建筑材料采購(gòu)分包合同(2篇)
- 2024年注冊(cè)消防工程師題庫(kù)參考答案
- 保險(xiǎn)產(chǎn)品創(chuàng)新路演模板
- 二零二五年度汽車(chē)租賃擔(dān)保公司合同車(chē)輛作為抵押的擔(dān)保公司服務(wù)協(xié)議4篇
- 二零二五版特色小吃店轉(zhuǎn)讓與加盟協(xié)議4篇
- 2025水利云播五大員考試題庫(kù)(含答案)
- 中藥飲片驗(yàn)收培訓(xùn)
- DB34T 1831-2013 油菜收獲與秸稈粉碎機(jī)械化聯(lián)合作業(yè)技術(shù)規(guī)范
- 殘疾軍人新退休政策
- 白酒代理合同范本
- 稅前工資反算表模板
- 2019級(jí)水電站動(dòng)力設(shè)備專(zhuān)業(yè)三年制人才培養(yǎng)方案
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 抖音認(rèn)證承諾函
- 高等數(shù)學(xué)(第二版)
- 四合一體系基礎(chǔ)知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論