




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第一章VisualStudio2008開發(fā)平臺的使用
VisualStudio是一套完整的開發(fā)工具,用于生成ASP.NETWeb應(yīng)用程序、
XMLWebServices.桌面應(yīng)用程序和移動應(yīng)用程序。VisualBasic.VisualC#和
VisualC++都使用相同的集成開發(fā)環(huán)境(IDE),這樣就能夠進行工具共享,并能夠輕
松地創(chuàng)建混合語言解決方案。另外,這些語言使用.NETFramework的功能,它提供
了可簡化ASPWeb應(yīng)用程序和XMLWebServices開發(fā)的關(guān)鍵技術(shù)。
VisualStudio2008新增類設(shè)計器、AJAX開發(fā)、WPF設(shè)計器、語言集成查詢
等功能,為用戶開發(fā)提供了靈活而強大的技術(shù)支持.
一、面向?qū)ο蟮乃枷敕椒?/p>
1.1本書目標(biāo)
VisualStudio2008開發(fā)平臺,從語言選擇上看,既可以選擇C#,也可以選擇
VB,C++;從開發(fā)模式看,既可以是B/S模式,也可以是C/S模式;從應(yīng)用領(lǐng)域看,
既可以是企業(yè)級應(yīng)用,也可以是移動設(shè)備上應(yīng)用。因此,介紹平臺使用是非常豐富、而無
能一書可以完成的,本書的目標(biāo)是試圖選擇C#語言,采用B/S模式,討論一般的企業(yè)級
應(yīng)用。
1.2面向?qū)ο?/p>
“物以類聚”這是人類認(rèn)識世界的基本觀點,人們總是把具有相同特征和行為的事物
劃分為一類,軟件作為服務(wù)人類的科學(xué)手段,也可以類的思維耒認(rèn)識與刻劃這個世界。在
現(xiàn)代軟件工程中,把事物特征看成是數(shù)據(jù)、信息、數(shù)據(jù)成員、字段、變量、對象、屬性,…;
把事物行為看成是操作、信息處理、成員函數(shù)、函數(shù)、功能、服務(wù)、方法,…。
對象”是包含數(shù)據(jù)和操作該數(shù)據(jù)的方法的結(jié)構(gòu)。一般來說,“類“class是一些內(nèi)容的
抽象表示形式,而“對象”是類所表示的內(nèi)容的具體實例且是可用示例。共享類成員是此規(guī)
則的一個例外,這種成員可在類的實例和聲明為共享類類型的對象變量中使用。
類由字段、屬性、方法和事件組成。字段和屬性表示對象包含的信息。字段類似于變
量,因為可以直接讀取或設(shè)置它們。例如,如果有一個名為“Car”的汽車對象,則可以在
名為“Color”的顏色字段中存儲其顏色。
屬性的檢索和設(shè)置方法與字段類似,但是屬性是使用PropertyGet和Property
Set過程(方法)實現(xiàn)的,這些過程對如何設(shè)置或返回值提供更多的控制(也稱屬性訪問
器).在所存儲值和使用此值的過程之間的間接層有助于隔離數(shù)據(jù),并使您得以在分配或檢
索值之前驗證這些值。
方法表示對象可執(zhí)行的操作(具備的功能)。頒1,“Car”對象可以有“StartEngined
“Drive”和“Stop”方法。通過向類中添加過程(函數(shù))來定義方法。
事件是對象從其他對象或應(yīng)用程序接收的通知,或者是對象傳輸?shù)狡渌麑ο蠡驊?yīng)用程
序的通知。事件使對象得以在每當(dāng)特定情況發(fā)生時執(zhí)行操作?!癈ar”類的一個事件示例是
"Check_Engine"事件。因為MicrosoftWindows是事件驅(qū)動的操作系統(tǒng),所以事
件可來自其他對象、應(yīng)用程序或用戶輸入(如鼠標(biāo)單擊或按鍵)。
字段、屬性、方法和事件只是面向?qū)ο缶幊倘績?nèi)容的一半。真正的面向?qū)ο蟮木幊?/p>
需要對象支持三種特性:封裝、繼承和多態(tài)性。
“封裝”意味著將一組相關(guān)屬性、方法和其他成員視為一個單元或?qū)ο蟆ο罂梢钥刂?/p>
更改屬性和執(zhí)行方法的方式。例如,對象可在允許屬性更改前驗證值。通過隱藏對象的實
現(xiàn)細(xì)節(jié)(一種稱為“數(shù)據(jù)隱藏”的做法),封裝還使在以后對實現(xiàn)進行更改更為容易。
“繼承”描述基于現(xiàn)有類創(chuàng)建新類的能力。新類繼承基類的所有屬性、方法和事件,而
且可用其他屬性和方法自定義該新類。例如,可基于“Car”類創(chuàng)建名為“Truck”的新類。
"Truck"類從"Car"類繼承"Color”屬性,而且可有其他屬性,如"FourWheelDrive"。
“多態(tài)性”意味著可以有多個可互換使用的類,即使每個類以不同方式實現(xiàn)相同屬性或
方法。多態(tài)性對于面向?qū)ο缶幊谭浅V匾驗樗试S使用同名的項,而不管此時使用的
是什么類型的對象。例如,假設(shè)給定基類“Car”,多態(tài)性使程序員能夠為任意數(shù)量的派生
類定義不同的“StartEngine”方法。名為“DieselCar”的派生類的“StartEngine”方
法可以與基類中同名的方法完全不同。其他過程或方法可用完全相同的方式使用派生類的
“StartEngine”方法,不管此時使用的是什么類型的“Car”對象。
重載、重寫和隱藏是很容易混淆的類似概念。雖然所有這三種技術(shù)都使您可以創(chuàng)建同
名的成員,但它們之間有一些重要的差異。
重載的成員用于提供屬性或方法的不同版本,這些版本具有相同名稱但是接受不同數(shù)
量的參數(shù)或者接受不同數(shù)據(jù)類型的參數(shù)。
重寫的屬性和方法用于替換在派生類中不適合的繼承的屬性或方法。重寫的成員必須
接受同一數(shù)據(jù)類型和參數(shù)數(shù)量。派生類繼承重寫的成員。
隱藏的成員用于局部替換具有更廣范圍的成員。任何類型都可隱藏任何其他類型。例
如,可聲明隱藏同名繼承方法的屬性。無法繼承隱藏的成員。
1.3組件技術(shù)
一般說耒,控件除了特定功能還有與用戶交互部分,組件具有特定功能未必與用戶交互.
在我們討論范圍中,c#語言是純面向?qū)ο蟮?,因此組件也好,控件也好,本質(zhì)上都是類。
我們耒看看Label標(biāo)簽類.
在工具箱中的標(biāo)準(zhǔn)控件中第一個控件是ALabel,這是存儲文本的標(biāo)簽.
一個ASP.NET的項目中,選擇一個頁面,如newp.aspx頁,進入設(shè)計狀態(tài),然后,用鼠標(biāo)
選中ALabel標(biāo)簽,按住左鍵拖入設(shè)計頁中,默認(rèn)ID為Labell.這是Label類的一個對
象.應(yīng)理解為System.Web.UI.WebControls.LabelLabell=
newSystem.Web.UI.WebControls.Label();
開發(fā)環(huán)境提供四個Label類,應(yīng)用于不同的場合.如是:
System.Web.UI.MobileControls.Label
提供控件功能,用于表示在移動設(shè)備上顯示文本的控件。
System.Web.UI.WebControls.Label
表示在網(wǎng)頁上顯示文本的標(biāo)簽控件。
System.Windows.Controls.Label
表示控件的文本標(biāo)簽,并提供對訪問鍵的支持。
System.Windows.Form.Label
表示標(biāo)準(zhǔn)Windows標(biāo)簽。
這里是B/S開發(fā),應(yīng)用System.Web.Ul.WebControls.Label類.可從幫助文檔查到這個類
的屬性、方法、事件。而現(xiàn)在拖入頁面的ID為Labell標(biāo)簽控件是這個類的對象,或是實
例,它具有類的全部屬性、方法、事件.
在設(shè)計頁上選中Labell控件對象,擊右鍵選屬性,即展示該對象的屬性、事件.作
者安裝的環(huán)境只顯示類的部分屬性及全部事件.對象屬性,即代表對象的特征,調(diào)整屬性,
即改變著對象特征.也能改變對象的外觀.如:背景、邊框、字體、顏色等等.
在控件顯示屬性框中,有一工具條,將鼠標(biāo)移入即提示功能,如選中將出現(xiàn)提示如下:
按分類順序,字母順序,屬性,事件,屬性頁.
每個控件都有事件,你可以選擇適當(dāng)?shù)氖录フ{(diào)用適當(dāng)功能的處理方法.以滿足客戶要
求.
VisualStudio2008開發(fā)平臺的工具箱中提供許多控件,將其拖入設(shè)計頁中,就生
成控件類的一個對象,可以調(diào)整屬性改變該對象的特征,可以選擇事件調(diào)用方法,實現(xiàn)特
定的功能,提供特定的服務(wù).
?1.4平臺結(jié)構(gòu)
3?
器
器
“
落
霏
工具箝QX
碓
標(biāo)解決方案資源省理器-解決方案▼QX
數(shù)?」目國_回口曲》/
總
證
航
導(dǎo)D解決方案,eb”(1個項目)
5聚
臼.?E:“eb\
VebPartx
_jApp_D?t*
+AJAXExtensifoxis
㈤報表+_llDefault.aspx
?HTILweb.config
底一重黑
加1〉8勺〉品用疝〉畫
圖1-1、VisualStudio2008開發(fā)平臺的結(jié)構(gòu)布局
1.5控件屬性
下面表1-1:列出的屬性適用于所有從WebControl類派生的Web服務(wù)器控件。
表1-1:
AccessKey控件的鍵盤快捷鍵(AccessKey)。此屬性指定用戶在按住Alt
的同時可以按下的單個字母或數(shù)字。例如,如果希望用戶按下
Alt+K以訪問控件,則指定“K”。僅在MicrosoftInternet
Explorer4.0及其更高版本中支持快捷鍵。
Attributes控件上的未由公共屬性定義但仍需呈現(xiàn)的附加屬性集合。任何未由
Web服務(wù)器控件定義的屬性都添加到此集合中。這使您可以使用
未被控件直接支持的HTML屬性。
只能在編程時使用此屬性;不能在聲明控件時設(shè)置此屬性。
BackColor控件的背景色。BackColor屬性可以使用標(biāo)準(zhǔn)的HTML顏色
標(biāo)識符來設(shè)置:顏色名稱(“black”或“red”)或者以十六進制格
式("#ffffff")表示的RGB值。
BorderColor控件的邊框顏色。BorderColor屬性可以使用標(biāo)準(zhǔn)的HTML
顏色標(biāo)識符來設(shè)置:顏色名稱(“black”或“red”)或者以十六進
制格式("#ffffff”)表示的RGB值。
BorderWidth控件邊框(如果有的話)的寬度(以像素為單位)。
此屬性可能不適用于InternetExplorer4.0之前的瀏覽器
中的所有控件。
BorderStyle控件的邊框樣式(如果有的話)。可能的值包括:
NotSet
None
Dotted
Dashed
Solid
Double
Groove
Ridge
Inset
Outset
CssClass分配給控件的級聯(lián)樣式表(CSS)類。
Style作為控件的外部標(biāo)記上的CSS樣式屬性呈現(xiàn)的文本屬性集合。
任何使用樣式屬性(例如BackCoI。r)設(shè)置的樣式值都將自動重
寫此集合中的對應(yīng)值。使用此屬性設(shè)置的值不會自動反映在強類型
樣式屬性中。
某些控件支持允許您將樣式屬性應(yīng)用于控件的各個元素的樣式對
象。這些屬性將重寫使用Style屬性進行的任何設(shè)置。
Enabled當(dāng)此屬性設(shè)置為true(默認(rèn)值)時使控件起作用。當(dāng)此屬性設(shè)置
為false時禁用控件。
禁用控件將使該控件變灰并使之處于非活動狀態(tài)。它并不會隱藏控
件。
EnableTheming當(dāng)此屬性設(shè)置為true(默認(rèn)值)時對控件啟用視圖狀態(tài)持久性。
當(dāng)此屬性設(shè)置為false時對該控件禁用視圖狀態(tài)持久性。
EnableViewState當(dāng)此屬性設(shè)置為true(默認(rèn)值)時對控件啟用主題。當(dāng)此屬性設(shè)
置為false時對該控件禁用主題。
Font為正在聲明的Web服務(wù)器控件提供字體信息。此屬性包含子屬
性,您可以在Web服務(wù)器控件元素的開始標(biāo)記中使用屬性-子屬
性語法來聲明這些子屬性。例如,可以通過在Web服務(wù)器控件
文本的開始標(biāo)記中包含F(xiàn)ont-Bold屬性而使該文本以粗體顯
7Ko
ForeColor控件的前景色。
此屬性可能不適用于1nternetExplorer4.0之前的瀏覽器
中的所有控件。
Height控件的高度。
此屬性可能不適用于1nternetExplorer4.0之前的瀏覽器
中的所有控件。
SkinlD要應(yīng)用于控件的外觀。
Tabindex控件的位置(按Tab鍵順序)。如果未設(shè)置此屬性,則控件的位
置索引為0。具有相同選項卡索引的控件可以按照它們在網(wǎng)頁中
的聲明順序用Tab鍵導(dǎo)航。
此屬性只適用于1nternetExplorer4.0及更高版本。
ToolTip當(dāng)用戶將鼠標(biāo)指針定位在控件上方時顯示的文本。
ToolTip屬性并不適用于所有瀏覽器。請檢查瀏覽器的兼容性。
Width控件的固定寬度??赡艿膯挝话ǎ?/p>
?像素(px)
?磅(pt)
?派卡(pc)
?英寸(in)
?毫米(mm)
?厘米(cm)
?百分比(%)
?大寫字母M的寬度(em)
?小寫字母x的高度(ex)
例如,以聲明方式設(shè)置100磅寬就是lOOpto有關(guān)以編程方式
設(shè)置寬度的信息,請參見如何:設(shè)置Web服務(wù)器控件的單位屬
性。
默認(rèn)單位是像素。并非所有瀏覽器都支持每種單位類型。
1.6工程案例
本教材給出了三個工程案例,在VisualStudio2008開發(fā)平臺下完成.一個是電子商務(wù)
系統(tǒng);一個是電子政務(wù)系統(tǒng);第三是物流系統(tǒng).
二、工具箱中標(biāo)準(zhǔn)控件的使用
2.1Label標(biāo)簽
使用Label標(biāo)簽控件在Web窗體頁上的固定位置顯示文本。與靜態(tài)文本不同,它
可以通過編程方式設(shè)置Text屬性來自定義所顯示的文本。
文本在Label控件中顯示之前并非HTML編碼形式。這使得可以在文本中的
HTML標(biāo)記中嵌入腳本。如果控件的值是由用戶輸入的,請務(wù)必要對輸入值進行驗證以防
止出現(xiàn)安全漏洞。示例1-1代碼如下:
<%@PageLanguage=nC#*'AutoEventWireup="True"%>
<!DOCTYPEhtmlPUBLICH-//W3C//DTDXHTML1.0Transitional//EN"
*'/TR/xhtmll/DTD/xhtmll-transitional.dtdu>
<htmlxmlns=u/1999/xhtmlH>
<head>
<title>LabelExample</title>
<scriptlanguage="C#"runat=userver'*>//C#語言的腳本
voidButton_Click(ObjectSender,EventArgse)//按扭事件調(diào)用的方法
(
Label1.Text=Server.HtmlEncode(Text1.Text);//取文本框的值送標(biāo)簽上顯示
}
</script>
</head>
<body>
<formid=nFormlurunat=nserver">//form表單,收集信息
<h3>LabelExample</h3>
<asp:Labelid="Labell”〃標(biāo)簽對象Labell
Text="LabelControl0//顯示初值
runat="server**/>
<asp:TextBoxid="Textln〃文本輸入框?qū)ο骉extl
Text="Copythistexttothelabel"〃輸入框初值
Width="200px"
runat='*server"/>
<asp:Buttonid=''Buttonl',〃按扭對象Buttonl
Text=nCopyn
OnClick=nButton_ClickH//按扭事件調(diào)用函數(shù)名
runat='*servern/>
</p>
</form>
</body>
</html>
2.2TextBox文本框
TextBox服務(wù)器控件是讓用戶輸入文本的輸入控件。默認(rèn)情況下,TextMode屬
性設(shè)置為SingleLine,它創(chuàng)建只包含一行的文本框。您也可以將該屬性設(shè)置為
MultiLine或Password。MultiLine創(chuàng)建包含多行的文本框。Password創(chuàng)建可
以屏蔽用戶輸入的值的單行文本框。
文本框的顯示寬度由其Columns屬性確定。如果文本框是多行文本框,則顯示高
度由Rows屬性確定。
使用Text屬性確定TextBox控件的內(nèi)容。通過設(shè)置MaxLength屬性,可
以限制可輸入到此控件中的字符數(shù)。將Wrap屬性設(shè)置為true來指定當(dāng)?shù)竭_(dá)文本框的
結(jié)尾時,單元格內(nèi)容應(yīng)自動在下一行繼續(xù)。
其使用如示例1-1所示.
2.3Button按扭
Button控件使您能夠在Web窗體頁上創(chuàng)建下壓按鈕。可以創(chuàng)建兩種類型的按
鈕:submit按鈕或command按鈕。
默認(rèn)情況下,Button控件是一個submit按鈕。submit按鈕沒有與按鈕關(guān)聯(lián)
的命令名(由CommandName屬性指定),它只是將網(wǎng)頁發(fā)送回服務(wù)器。可以為Click
事件提供事件處理程序,以編程方式控制單擊submit按鈕時執(zhí)行的操作。
通過設(shè)置CommandName屬性,command按鈕將命令名與按鈕相關(guān)聯(lián)(如
Sort)o這使您能夠在Web窗體頁上創(chuàng)建多個Button控件,并在Command事
件的事件處理程序中以編程方式確定要單擊的Button控件。也可以對command按
鈕使用CommandArgument屬性以提供有關(guān)要執(zhí)行的命令(如Ascending)的附
加信息。可以為Command事件提供事件處理程序,以編程方式控制單擊command
按鈕時執(zhí)行的操作。
模板化控件中經(jīng)常使用Command按鈕,它將操作傳送給父控件,例如,在
DataList進行選擇或在FormView中更改模式。
默認(rèn)情況下,在單擊Button控件時執(zhí)行頁驗證。頁驗證確定與該頁上驗證控件關(guān)
聯(lián)的輸入控件是否通過該驗證控件指定的驗證規(guī)則。如果Button控件需要禁用此行為
(如reset按鈕),請將CausesValidation屬性設(shè)置為false。
由于<asp:Button>元素沒有內(nèi)容,所以可以用/>結(jié)束該標(biāo)記,而不是使用
單獨的結(jié)束標(biāo)記。若要指定Button控件中顯示的標(biāo)題,請設(shè)置Text屬性。
下面的示例1-2:演示如何在.aspx文件中聲明submit按鈕控件。
<asp:Buttonid="SubmitButtonH
Text=nSubmit"
CommandName="Submit"
OnCommand="CommandBtn_Click”
runat=nserver"/>
卜面的示例演示如何在.aspx文件中聲明command按鈕控件。
<asp:Buttonid=nSortAscendingButton1'
Text=*'SortAscending"
CommandName="Sort
CommandArgunient="Ascending”
OnCommand=*'CommandBtn_Clickn
runat=nserver*'/>
下面的示例演示一個事件處理方法,該方法獲取按鈕單擊并顯示從該按鈕的
CommandName和CommandArgument屬性傳遞的信息。
voidCommandBtn_Click(Objectsender,CommandEventArgse)
(
Message.Text="Youclickedthe”+e.CommandName+
“一"+e.CommandArgument+"button.f,;
}
2.4LinkButton使用
使用LinkButton控件在Web窗體頁上創(chuàng)建超鏈接樣式按鈕。通過設(shè)置
Text屬性或?qū)⑽谋痉胖迷贚inkButton控件的開始標(biāo)記和結(jié)束標(biāo)記之間,指定要在
LinkButton控件中顯示的文本。可以創(chuàng)建“提交”按鈕或“命令”按鈕。
LinkButton控件的外觀與HyperLink控件相同,但其功能與Button控件相
同。如果要在單擊控件時鏈接到另一個網(wǎng)頁,請使用HyperLink控件。
submit按鈕沒有與之關(guān)聯(lián)的命令名,它只是將網(wǎng)頁發(fā)送回服務(wù)器。默認(rèn)情況下,
LinkButton控件是一個submit按鈕。可以為Click事件提供事件處理程序,以編
程方式控制單擊submit按鈕時執(zhí)行的操作。
通過設(shè)置CommandName屬性,可以將命令名與命令按鈕(如Sort)相關(guān)聯(lián)。
這使您能夠在一個網(wǎng)頁上創(chuàng)建多個LinkButton控件,并以編程方式確定單擊的
LinkButton控件。也可以將CommandArgument屬性與命令按鈕一起使用,以提
供關(guān)于要執(zhí)行的命令按鈕(如Ascending)的附加信息??梢詾镃ommand事件提供
事件處理程序,以編程方式控制單擊命令按鈕時執(zhí)行的操作。
LinkButton控件在客戶端瀏覽器上呈現(xiàn)JavaScript。客戶端瀏覽器必須啟用了
JavaScript,此控件才能正常運行。
下面的示例1-3:演示如何在.aspx文件中聲明LinkButton按鈕控件。
<%@PageLanguage='^C#,^AutoEventWireup=nTruen%>
<?DOCTYPEhtmlPUBLIC*'-//W3C//DTDXHTML1.0Transitional//ENn
"/TR/xhtmll/DTD/xhtmll-transitional.dtd">
<htmlxmlns=n/1999/xhtml">
<head>
<title>LinkButtonExample</title>
<scriptlanguage=nC#nrunat=nserverH>//C#語言的腳本
voidLinkButton_Click(ObjectsenderAEventArgse)
(
Label1.Text='*Youclickedthelinkbutton";
}〃提示按了LinkButtonl
</script>
</head>
<body>
<formid=nformlnrunat=nserver*'>
<h3>LinkButtonExample</h3>
<asp:LinkButtonid="LinkButtonln//設(shè)置聯(lián)接按扭對象LinkButtonl
Text="ClickMe"
Font-Names=uVerdanau
Font-Size=H14ptn
OnClick=uLinkButton_ClickH〃按扭事件調(diào)用函數(shù)名
runat="server"/>
<br/>
<asp:Labelid=nLabellnrunat='*servern/>
</form>
</body>
</html>
2.5ImageButton控件
使用ImageButton控件顯示響應(yīng)鼠標(biāo)單擊的圖像。通過設(shè)置Imagellrl屬性
指定在該控件中顯示的圖像。在單擊ImageButton控件時,將同時引發(fā)Click和
Command事件。使用OnClick事件處理程序,可以通過編程方式確定單擊的圖像位
置的坐標(biāo)。然后,可以根據(jù)坐標(biāo)值編寫響應(yīng)代碼。注意原點(0,0)位于圖像的左上角。
可以使用OnCommand事件處理程序使ImageButton控件的行為類似于命令按
鈕。使用CommandName屬性,可以將命令名與該控件相關(guān)聯(lián)。這允許在同一網(wǎng)頁上
放置多個ImageButton控件。然后可以通過編程方式在OnCommand事件處理程
序中標(biāo)識CommandName屬性的值,以確定在單擊每個ImageButton控件時應(yīng)
執(zhí)行的適當(dāng)操作。還可使用CommandArgument屬性傳遞有關(guān)命令的附加信息,如
指定升序順序。
由于<asp:lmageButton〉元素沒有內(nèi)容,因此可以使用/>結(jié)束該標(biāo)記,而
不必使用單獨的結(jié)束標(biāo)記。
下面的代碼示例1-4:使用單文件代碼模型,如果直接將該代碼示例復(fù)制到代碼隱藏
文件,則可能無法正常運行。必須將此代碼復(fù)制到擴展名為.aspx的空文本文件中。
<%@PageLanguage=nC#HAutoEventWireup="Truen%>
<!DOCTYPEhtmlPUBLICn-//W3C//DTDXHTML1.0Transitional//EN"
n/TR/xhtmll/DTD/xhtmll-transitional.dtd'*>
<htmlxmlns=n/1999/xhtml">
<head>
<title>ImageButtonSample</title>
<scriptlanguage=nC#nrunat="server">
voidImageButton_Click(objectsender,ImageClickEventArgse)
{
Label1.Text="YouclickedtheImageButtoncontrolatthe
coordinates:(“+
e.X.ToString()+”,"+e.Y.ToString()+
}
</script>
</head>
<body>
<formid=nformlnrunat="server">
<h3>ImageButtonSample</h3>
Clickanywhereontheimage.<br/><br/>
<asp:ImageButtonid=nimagebuttonlnrunat=uservern
AlternateText="ImageButton1
ImageAlign=nleft”
ImageUrl=nimages/pict.jpg"〃圖像按扭使用的圖像
OnClick="ImageButton_Click"/>//按扭調(diào)用方法
<br/><br/>
<asp:labelid="Labellnrunat='*server"/>
</form>
</body>
</html>
2.6HyperLink控件
使用HyperLink控件在頁上創(chuàng)建一個可使您移動到其他頁或位置的鏈接。使用
NavigateUrl屬性指定要鏈接到的頁或位置。鏈接既可顯示為文本也可顯示為圖像。若
要顯示文本,請設(shè)置Text屬性或?qū)⑽谋痉胖迷贖yperLink控件的開始和結(jié)束標(biāo)記之
間。若要顯示圖像,請設(shè)置ImageUrl屬性。
由于<asp:HyperLink>元素不需要包含內(nèi)容,因此可以使用/>結(jié)束該標(biāo)記。
如果同時設(shè)置了Text和ImageUrl屬性,則ImageUrl屬性優(yōu)先。如果圖像不可
用,則顯示Text屬性中的文本。在支持“工具提示”功能的瀏覽器上,在將鼠標(biāo)指針放在
HyperLink控件上時將顯示Text屬性的值。
通過設(shè)置Target屬性可以指定用于顯示鏈接頁的框架或窗口。值必須以a到z(不
區(qū)分大小寫)范圍內(nèi)的字母打頭,但下列以下劃線打頭的特殊值除外:
_blank在沒有框架的新窗口中顯示鏈接頁。
.parent在直接框架集父級中顯示鏈接頁。
_self在具有焦點的框架中顯示鏈接頁。
_top在沒有框架的完全窗口中顯示鏈接頁。
文本在HyperLink控件中顯示之前并非HTML編碼形式。這使得可以在文本中
的HTML標(biāo)記中嵌入腳本。如果控件的值是由用戶輸入的,請務(wù)必要對輸入值進行驗證
以防止出現(xiàn)安全漏洞。
使用HyperLinkWeb服務(wù)器控件在應(yīng)用程序的頁面之間導(dǎo)航時,您可以使用
顆化符通配符來表示應(yīng)用程序的根目錄,而不需要將目錄名硬編碼為應(yīng)用程序相
對URLo例如,您可以使用“~/Default.aspx",從應(yīng)用程序的任何子目錄中的任何頁
導(dǎo)航回應(yīng)用程序的Default.aspx頁。下面的示例1-5:演示如何使用HyperLink.
<%@PageLanguage=nC#HAutoEventWireup=nTrue"%>
<!DOCTYPEhtmlPUBLICn-//W3C//DTDXHTML1.0Transitional//EN"
“/TR/xhtmll/DTD/xhtmll-transitional.dtdH>
<htmlxmlns=n/1999/xhtmln>
<head>
<title>HyperLinkExample</title>
</head>
<body>
<formid=nFormlnrunat=userver11>
<h3>HyperLinkExample</h3>
ClickontheHyperLink:<br/>
<asp:HyperLinkid=nhyperlinklH//生成超鏈對象.
ImageUrl=nimages/pict.jpg"〃圖像超鏈
Navi:////導(dǎo)向網(wǎng)址
Text=nMicrosoftOfficialSite**〃顯示文本
Target="_new”
runat="server"/>
</form>
</body>
</html>
2.7DropDownList控件
使用DropDownList控件創(chuàng)建單項選擇下拉列表控件??梢酝ㄟ^設(shè)置
BorderColor,BorderStyle和BorderWidth屬性來控制DropDownList控件
的外觀。
若要指定在DropDownList控件中顯示的項,請為每個項在DropDownList
控件的開始標(biāo)記與結(jié)束標(biāo)記之間放置一個Listitem元素。
DropDownList控件還支持?jǐn)?shù)據(jù)綁定。若要將控件綁定到數(shù)據(jù)源,請首先創(chuàng)建數(shù)
據(jù)源狽ArrayList),該數(shù)據(jù)源包含要顯示在控件中的項。下一步,使用DataBind方
法將數(shù)據(jù)源綁定到DropDownList控件。使用DataTextField和
DataValueField屬性分別指定數(shù)據(jù)源中哪個字段綁定到控件中每個列表項的Text和
Value屬性?,F(xiàn)在,DropDownList控件將顯示數(shù)據(jù)源中的信息。
使用Selectedlndex屬性以編程方式確定用戶從DropDownList控件中選
擇的項的索引。然后即可使用該索引從控件的Items集合中檢索選定的項。
下面的示例1-6:看如何使用該下控件.
<%@PageLanguage="C#nAutoEventWireup="True"%>
<%@ImportNamespace="System.Data"%>
<!DOCTYPEhtmlPUBLICn-//W3C//DTDXHTML1.0Transitional//EN"
"/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns=n/1999/xhtmr'>
<scriptrunat=^server',>
voidSelection_Change(Objectsender,EventArgse)
(
//SetthebackgroundcolorfordaysintheCalendarcontrol
//basedonthevalueselectedbytheuserfromthe
//DropDownListcontrol.
Calendarl.DayStyle.BackColor=
System.Drawing.Color.FromName(ColorList.Selectedltem.Value);
)
voidPage_Load(Objectsender,EventArgse)
(
//LoaddatafortheDropDownListcontrolonlyonce,whenthe
//pageisfirstloaded.
if(!lsPostBack)
(
//SpecifythedatasourceandfieldnamesfortheText
//andValuepropertiesoftheitems(ListItemobjects)
//intheDropDownListcontrol.
ColorList.DataSource=GreateDataSource();
ColorList.DataTextField='*ColorTextField";
ColorList.DataValueFieId="ColorValueField";
//Bindthedatatothecontrol.
ColorList.DataBind();
//SetthedefauItselecteditem,ifdesired.
ColorList.Selectedlndex=0;
)
)
ICollectionCreateDataSource()
(
//CreateatabletostoredatafortheDropDownListcontrol.
DataTabledt=newDataTable();
//Definethecolumnsofthetable.
dt.Columns.Add(newDataColumn(HColorTextField",
typeof(String)));
dt.Columns.Add(newDataColumn("ColorValueField",
typeof(String)));
//Populatethetablewithsampievalues.
dt.Rows.Add(CreateRow("White","White",dt));
dt.Rows.Add(GreateRow(HSiIver","Silver1',dt));
dt.Rows.Add(GreateRow("DarkGray'',"DarkGray",dt));
dt.Rows.Add(CreateRow(HKhaki","Khaki",dt));
dt.Rows.Add(CreateRow("DarkKhaki","DarkKhaki",dt));
//CreateaDataViewfromtheDataTabletoactasthedata
source
//fortheDropDownListcontrol.
DataViewdv=newDataView(dt);
returndv;
DataRowCreateRow(StringText,StringValue,DataTabledt)
//CreateaDataRowusingtheDataTabledefinedinthe
//CreateDataSourcemethod.
DataRowdr=dt.NewRow();
//ThisDataRowcontainstheColorTextFieldand
ColorValueField
//fields,asdefinedintheCreateDataSourcemethod.Setthe
//fieldswiththeappropriatevalue.Rememberthatcolumn0
//isdefinedasColorTextField,andcolumn1isdefinedas
//ColorValueField.
dr[0]=Text;
dr[1]=Value;
returndr;
)
</script>
<headrunat="server">
<title>DropDownListDataBindingExampie</title>
</head>
<body>
<formid="form1Hrunat="server">
<h3>DropDownListDataBindingExample</h3>
Selectabackgroundcolorfordaysinthecalendar.
<br/><br/>
<asp:Calendarid='*Calendarl*'
ShowGridLines='*True"
ShowTitle=HTrueM
runat="server”/>
<br/xbr/>
<tablecellpadding='*5">
<tr>
<td>
Backgroundcolor:
</td>
</tr>
<tr>
<td>
<asp:DropDownListid="ColorList',
AutoPostBack="True”
OnSelectedIndexChanged="Selection_ChangeH
runat=Hserver*'/>
</td>
</tr>
</table>
</form>
</body>
</html>
2.8ListBox控件
使用ListBox控件創(chuàng)建允許進行單項或多項選擇的列表控件。使用Rows屬性指
定控件的高度。若要啟用多項選擇,請將SelectionMode屬性設(shè)置為Multiple.
若要指定要在ListBox控件中顯示的項,請針對每項在ListBox控件的開始標(biāo)記和結(jié)
束標(biāo)記之間放置一個Listitem元素。
ListBox控件還支持?jǐn)?shù)據(jù)綁定。若要將控件綁定到數(shù)據(jù)源,請先創(chuàng)建一個數(shù)據(jù)源,
例如一個DataSourceControl對象,它包含要在控件中顯示的項。下一步,使用
DataBind方法將數(shù)據(jù)源綁定到ListBox控件。使用DataTextField和
DataValueField屬性分別指定將數(shù)據(jù)源中哪個字段綁定到控件中每個列表項的Text
和Value屬性?,F(xiàn)在,ListBox控件將顯示數(shù)據(jù)源中的信息。
如果SelectionMode屬性設(shè)置為MuItiple,請通過循環(huán)訪問Items集合以及
測試該集合中每個項的Selected屬性,來確定ListBox控件中的選定項。如果
SelectionMode屬性設(shè)置為Single,則可使用Selectedlndex屬性來確定選定項
的索引。然后,可以使用該索引從Items集合中檢索項。下面的示例1-7:演示如何使
用ListBox.
<%@PageLanguage=nC#HAutoEventWireup=nTrue"%>
<!DOCTYPEhtmlPUBLICn-//W3C//DTDXHTML1.0Transitional//ENn
"/TR/xhtmll/DTD/xhtmll-transitional.dtd'*>
<htmlxmlns=n/1999/xhtml">
<head>
<title>ListBoxExample</title>
<scriptlanguage=nC#**runat="server">
voidSubmitBtn_Click(Objectsender,EventArgse)
(
if(ListBoxl.Selectedlndex>-1)
Labell.Text=HYouchose:”+ListBoxl.Selectedltem.Text;
}
</script>
</head>
<body>
<h3>ListBoxExample</h3>
<formid=nforml°runat=nserver*'>
<asp:ListBoxid="ListBoxln//生成對象ListBoxl
Rows="6"〃控件高度放六行
Width=n100pxn
SelectionMode="Single"〃單選模式
runat="server”>
<asp:Listltem>lteml</asp:Listltem>//列表內(nèi)容
<asp:ListItem>Item2</asp:Listltem>
<asp:ListItem>Item3</asp:Listltem>
<asp:ListItem>Item
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 5 good manners study skills 教學(xué)設(shè)計2024-2025學(xué)年牛津譯林版八年級英語下冊
- 2020-2021深圳南山實驗學(xué)校初中部小學(xué)四年級數(shù)學(xué)上期末第一次模擬試題帶答案
- 鋼軌彈性支撐施工方案
- 屋頂融雪裝置施工方案
- 醇油漆施工方案
- 樓體加固具體施工方案
- 入駐店鋪合同范本
- 業(yè)務(wù)拓展顧問合同范例
- 產(chǎn)品質(zhì)量控制的年度措施計劃
- 乙方委托設(shè)計合同范本
- 高中學(xué)生物理學(xué)情分析【3篇】
- 培訓(xùn)課件 -低成本自動化的開展與案例(上)
- 急救車藥品一覽表
- 項目部成立文件示例1
- 強直性脊柱炎患者功能鍛煉組圖
- 新課程標(biāo)準(zhǔn)2022版綜合實踐
- 40篇英語短文搞定高考3500個單詞
- 【企業(yè)會計信息化存在的問題及解決對策開題報告】
- 痘痘肌膚的各種類型
- 衛(wèi)生事業(yè)管理 第十八章 衛(wèi)生應(yīng)急管理
- 8.6《林黛玉進賈府》課本劇劇本
評論
0/150
提交評論