C#控件使用代碼_第1頁
C#控件使用代碼_第2頁
C#控件使用代碼_第3頁
C#控件使用代碼_第4頁
C#控件使用代碼_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論