C#控件使用代码_第1页
C#控件使用代码_第2页
C#控件使用代码_第3页
C#控件使用代码_第4页
C#控件使用代码_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章VisualStudio2008开发平台的使用

VisualStudio是一套完整的开发工具,用于生成ASP.NETWeb应用程序、

XMLWebServices.桌面应用程序和移动应用程序。VisualBasic.VisualC#和

VisualC++都使用相同的集成开发环境(IDE),这样就能够进行工具共享,并能够轻

松地创建混合语言解决方案。另外,这些语言使用.NETFramework的功能,它提供

了可简化ASPWeb应用程序和XMLWebServices开发的关键技术。

VisualStudio2008新增类设计器、AJAX开发、WPF设计器、语言集成查询

等功能,为用户开发提供了灵活而强大的技术支持.

一、面向对象的思想方法

1.1本书目标

VisualStudio2008开发平台,从语言选择上看,既可以选择C#,也可以选择

VB,C++;从开发模式看,既可以是B/S模式,也可以是C/S模式;从应用领域看,

既可以是企业级应用,也可以是移动设备上应用。因此,介绍平台使用是非常丰富、而无

能一书可以完成的,本书的目标是试图选择C#语言,采用B/S模式,讨论一般的企业级

应用。

1.2面向对象

“物以类聚”这是人类认识世界的基本观点,人们总是把具有相同特征和行为的事物

划分为一类,软件作为服务人类的科学手段,也可以类的思维耒认识与刻划这个世界。在

现代软件工程中,把事物特征看成是数据、信息、数据成员、字段、变量、对象、属性,…;

把事物行为看成是操作、信息处理、成员函数、函数、功能、服务、方法,…。

对象”是包含数据和操作该数据的方法的结构。一般来说,“类“class是一些内容的

抽象表示形式,而“对象”是类所表示的内容的具体实例且是可用示例。共享类成员是此规

则的一个例外,这种成员可在类的实例和声明为共享类类型的对象变量中使用。

类由字段、属性、方法和事件组成。字段和属性表示对象包含的信息。字段类似于变

量,因为可以直接读取或设置它们。例如,如果有一个名为“Car”的汽车对象,则可以在

名为“Color”的颜色字段中存储其颜色。

属性的检索和设置方法与字段类似,但是属性是使用PropertyGet和Property

Set过程(方法)实现的,这些过程对如何设置或返回值提供更多的控制(也称属性访问

器).在所存储值和使用此值的过程之间的间接层有助于隔离数据,并使您得以在分配或检

索值之前验证这些值。

方法表示对象可执行的操作(具备的功能)。颁1,“Car”对象可以有“StartEngined

“Drive”和“Stop”方法。通过向类中添加过程(函数)来定义方法。

事件是对象从其他对象或应用程序接收的通知,或者是对象传输到其他对象或应用程

序的通知。事件使对象得以在每当特定情况发生时执行操作。“Car”类的一个事件示例是

"Check_Engine"事件。因为MicrosoftWindows是事件驱动的操作系统,所以事

件可来自其他对象、应用程序或用户输入(如鼠标单击或按键)。

字段、属性、方法和事件只是面向对象编程全部内容的一半。真正的面向对象的编程

需要对象支持三种特性:封装、继承和多态性。

“封装”意味着将一组相关属性、方法和其他成员视为一个单元或对象。对象可以控制

更改属性和执行方法的方式。例如,对象可在允许属性更改前验证值。通过隐藏对象的实

现细节(一种称为“数据隐藏”的做法),封装还使在以后对实现进行更改更为容易。

“继承”描述基于现有类创建新类的能力。新类继承基类的所有属性、方法和事件,而

且可用其他属性和方法自定义该新类。例如,可基于“Car”类创建名为“Truck”的新类。

"Truck"类从"Car"类继承"Color”属性,而且可有其他属性,如"FourWheelDrive"。

“多态性”意味着可以有多个可互换使用的类,即使每个类以不同方式实现相同属性或

方法。多态性对于面向对象编程非常重要,因为它允许使用同名的项,而不管此时使用的

是什么类型的对象。例如,假设给定基类“Car”,多态性使程序员能够为任意数量的派生

类定义不同的“StartEngine”方法。名为“DieselCar”的派生类的“StartEngine”方

法可以与基类中同名的方法完全不同。其他过程或方法可用完全相同的方式使用派生类的

“StartEngine”方法,不管此时使用的是什么类型的“Car”对象。

重载、重写和隐藏是很容易混淆的类似概念。虽然所有这三种技术都使您可以创建同

名的成员,但它们之间有一些重要的差异。

重载的成员用于提供属性或方法的不同版本,这些版本具有相同名称但是接受不同数

量的参数或者接受不同数据类型的参数。

重写的属性和方法用于替换在派生类中不适合的继承的属性或方法。重写的成员必须

接受同一数据类型和参数数量。派生类继承重写的成员。

隐藏的成员用于局部替换具有更广范围的成员。任何类型都可隐藏任何其他类型。例

如,可声明隐藏同名继承方法的属性。无法继承隐藏的成员。

1.3组件技术

一般说耒,控件除了特定功能还有与用户交互部分,组件具有特定功能未必与用户交互.

在我们讨论范围中,c#语言是纯面向对象的,因此组件也好,控件也好,本质上都是类。

我们耒看看Label标签类.

在工具箱中的标准控件中第一个控件是ALabel,这是存储文本的标签.

一个ASP.NET的项目中,选择一个页面,如newp.aspx页,进入设计状态,然后,用鼠标

选中ALabel标签,按住左键拖入设计页中,默认ID为Labell.这是Label类的一个对

象.应理解为System.Web.UI.WebControls.LabelLabell=

newSystem.Web.UI.WebControls.Label();

开发环境提供四个Label类,应用于不同的场合.如是:

System.Web.UI.MobileControls.Label

提供控件功能,用于表示在移动设备上显示文本的控件。

System.Web.UI.WebControls.Label

表示在网页上显示文本的标签控件。

System.Windows.Controls.Label

表示控件的文本标签,并提供对访问键的支持。

System.Windows.Form.Label

表示标准Windows标签。

这里是B/S开发,应用System.Web.Ul.WebControls.Label类.可从帮助文档查到这个类

的属性、方法、事件。而现在拖入页面的ID为Labell标签控件是这个类的对象,或是实

例,它具有类的全部属性、方法、事件.

在设计页上选中Labell控件对象,击右键选属性,即展示该对象的属性、事件.作

者安装的环境只显示类的部分属性及全部事件.对象属性,即代表对象的特征,调整属性,

即改变着对象特征.也能改变对象的外观.如:背景、边框、字体、颜色等等.

在控件显示属性框中,有一工具条,将鼠标移入即提示功能,如选中将出现提示如下:

按分类顺序,字母顺序,属性,事件,属性页.

每个控件都有事件,你可以选择适当的事件去调用适当功能的处理方法.以满足客户要

求.

VisualStudio2008开发平台的工具箱中提供许多控件,将其拖入设计页中,就生

成控件类的一个对象,可以调整属性改变该对象的特征,可以选择事件调用方法,实现特

定的功能,提供特定的服务.

™1.4平台结构

3・

工具箝QX

标解决方案资源省理器-解决方案▼QX

数«」目国_回口曲》/

导D解决方案,eb”(1个项目)

5聚

臼.»E:“eb\

VebPartx

_jApp_D»t*

+AJAXExtensifoxis

㈤报表+_llDefault.aspx

♦HTILweb.config

底一重黑

加1〉8勺〉品用疝〉画

图1-1、VisualStudio2008开发平台的结构布局

1.5控件属性

下面表1-1:列出的属性适用于所有从WebControl类派生的Web服务器控件。

表1-1:

AccessKey控件的键盘快捷键(AccessKey)。此属性指定用户在按住Alt

的同时可以按下的单个字母或数字。例如,如果希望用户按下

Alt+K以访问控件,则指定“K”。仅在MicrosoftInternet

Explorer4.0及其更高版本中支持快捷键。

Attributes控件上的未由公共属性定义但仍需呈现的附加属性集合。任何未由

Web服务器控件定义的属性都添加到此集合中。这使您可以使用

未被控件直接支持的HTML属性。

只能在编程时使用此属性;不能在声明控件时设置此属性。

BackColor控件的背景色。BackColor属性可以使用标准的HTML颜色

标识符来设置:颜色名称(“black”或“red”)或者以十六进制格

式("#ffffff")表示的RGB值。

BorderColor控件的边框颜色。BorderColor属性可以使用标准的HTML

颜色标识符来设置:颜色名称(“black”或“red”)或者以十六进

制格式("#ffffff”)表示的RGB值。

BorderWidth控件边框(如果有的话)的宽度(以像素为单位)。

此属性可能不适用于InternetExplorer4.0之前的浏览器

中的所有控件。

BorderStyle控件的边框样式(如果有的话)。可能的值包括:

NotSet

None

Dotted

Dashed

Solid

Double

Groove

Ridge

Inset

Outset

CssClass分配给控件的级联样式表(CSS)类。

Style作为控件的外部标记上的CSS样式属性呈现的文本属性集合。

任何使用样式属性(例如BackCoI。r)设置的样式值都将自动重

写此集合中的对应值。使用此属性设置的值不会自动反映在强类型

样式属性中。

某些控件支持允许您将样式属性应用于控件的各个元素的样式对

象。这些属性将重写使用Style属性进行的任何设置。

Enabled当此属性设置为true(默认值)时使控件起作用。当此属性设置

为false时禁用控件。

禁用控件将使该控件变灰并使之处于非活动状态。它并不会隐藏控

件。

EnableTheming当此属性设置为true(默认值)时对控件启用视图状态持久性。

当此属性设置为false时对该控件禁用视图状态持久性。

EnableViewState当此属性设置为true(默认值)时对控件启用主题。当此属性设

置为false时对该控件禁用主题。

Font为正在声明的Web服务器控件提供字体信息。此属性包含子属

性,您可以在Web服务器控件元素的开始标记中使用属性-子属

性语法来声明这些子属性。例如,可以通过在Web服务器控件

文本的开始标记中包含Font-Bold属性而使该文本以粗体显

7Ko

ForeColor控件的前景色。

此属性可能不适用于1nternetExplorer4.0之前的浏览器

中的所有控件。

Height控件的高度。

此属性可能不适用于1nternetExplorer4.0之前的浏览器

中的所有控件。

SkinlD要应用于控件的外观。

Tabindex控件的位置(按Tab键顺序)。如果未设置此属性,则控件的位

置索引为0。具有相同选项卡索引的控件可以按照它们在网页中

的声明顺序用Tab键导航。

此属性只适用于1nternetExplorer4.0及更高版本。

ToolTip当用户将鼠标指针定位在控件上方时显示的文本。

ToolTip属性并不适用于所有浏览器。请检查浏览器的兼容性。

Width控件的固定宽度。可能的单位包括:

•像素(px)

・磅(pt)

•派卡(pc)

•英寸(in)

»毫米(mm)

•厘米(cm)

•百分比(%)

•大写字母M的宽度(em)

•小写字母x的高度(ex)

例如,以声明方式设置100磅宽就是lOOpto有关以编程方式

设置宽度的信息,请参见如何:设置Web服务器控件的单位属

性。

默认单位是像素。并非所有浏览器都支持每种单位类型。

1.6工程案例

本教材给出了三个工程案例,在VisualStudio2008开发平台下完成.一个是电子商务

系统;一个是电子政务系统;第三是物流系统.

二、工具箱中标准控件的使用

2.1Label标签

使用Label标签控件在Web窗体页上的固定位置显示文本。与静态文本不同,它

可以通过编程方式设置Text属性来自定义所显示的文本。

文本在Label控件中显示之前并非HTML编码形式。这使得可以在文本中的

HTML标记中嵌入脚本。如果控件的值是由用户输入的,请务必要对输入值进行验证以防

止出现安全漏洞。示例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)//按扭事件调用的方法

(

Label1.Text=Server.HtmlEncode(Text1.Text);//取文本框的值送标签上显示

}

</script>

</head>

<body>

<formid=nFormlurunat=nserver">//form表单,收集信息

<h3>LabelExample</h3>

<asp:Labelid="Labell”〃标签对象Labell

Text="LabelControl0//显示初值

runat="server**/>

<asp:TextBoxid="Textln〃文本输入框对象Textl

Text="Copythistexttothelabel"〃输入框初值

Width="200px"

runat='*server"/>

<asp:Buttonid=''Buttonl',〃按扭对象Buttonl

Text=nCopyn

OnClick=nButton_ClickH//按扭事件调用函数名

runat='*servern/>

</p>

</form>

</body>

</html>

2.2TextBox文本框

TextBox服务器控件是让用户输入文本的输入控件。默认情况下,TextMode属

性设置为SingleLine,它创建只包含一行的文本框。您也可以将该属性设置为

MultiLine或Password。MultiLine创建包含多行的文本框。Password创建可

以屏蔽用户输入的值的单行文本框。

文本框的显示宽度由其Columns属性确定。如果文本框是多行文本框,则显示高

度由Rows属性确定。

使用Text属性确定TextBox控件的内容。通过设置MaxLength属性,可

以限制可输入到此控件中的字符数。将Wrap属性设置为true来指定当到达文本框的

结尾时,单元格内容应自动在下一行继续。

其使用如示例1-1所示.

2.3Button按扭

Button控件使您能够在Web窗体页上创建下压按钮。可以创建两种类型的按

钮:submit按钮或command按钮。

默认情况下,Button控件是一个submit按钮。submit按钮没有与按钮关联

的命令名(由CommandName属性指定),它只是将网页发送回服务器。可以为Click

事件提供事件处理程序,以编程方式控制单击submit按钮时执行的操作。

通过设置CommandName属性,command按钮将命令名与按钮相关联(如

Sort)o这使您能够在Web窗体页上创建多个Button控件,并在Command事

件的事件处理程序中以编程方式确定要单击的Button控件。也可以对command按

钮使用CommandArgument属性以提供有关要执行的命令(如Ascending)的附

加信息。可以为Command事件提供事件处理程序,以编程方式控制单击command

按钮时执行的操作。

模板化控件中经常使用Command按钮,它将操作传送给父控件,例如,在

DataList进行选择或在FormView中更改模式。

默认情况下,在单击Button控件时执行页验证。页验证确定与该页上验证控件关

联的输入控件是否通过该验证控件指定的验证规则。如果Button控件需要禁用此行为

(如reset按钮),请将CausesValidation属性设置为false。

由于<asp:Button>元素没有内容,所以可以用/>结束该标记,而不是使用

单独的结束标记。若要指定Button控件中显示的标题,请设置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窗体页上创建超链接样式按钮。通过设置

Text属性或将文本放置在LinkButton控件的开始标记和结束标记之间,指定要在

LinkButton控件中显示的文本。可以创建“提交”按钮或“命令”按钮。

LinkButton控件的外观与HyperLink控件相同,但其功能与Button控件相

同。如果要在单击控件时链接到另一个网页,请使用HyperLink控件。

submit按钮没有与之关联的命令名,它只是将网页发送回服务器。默认情况下,

LinkButton控件是一个submit按钮。可以为Click事件提供事件处理程序,以编

程方式控制单击submit按钮时执行的操作。

通过设置CommandName属性,可以将命令名与命令按钮(如Sort)相关联。

这使您能够在一个网页上创建多个LinkButton控件,并以编程方式确定单击的

LinkButton控件。也可以将CommandArgument属性与命令按钮一起使用,以提

供关于要执行的命令按钮(如Ascending)的附加信息。可以为Command事件提供

事件处理程序,以编程方式控制单击命令按钮时执行的操作。

LinkButton控件在客户端浏览器上呈现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//设置联接按扭对象LinkButtonl

Text="ClickMe"

Font-Names=uVerdanau

Font-Size=H14ptn

OnClick=uLinkButton_ClickH〃按扭事件调用函数名

runat="server"/>

<br/>

<asp:Labelid=nLabellnrunat='*servern/>

</form>

</body>

</html>

2.5ImageButton控件

使用ImageButton控件显示响应鼠标单击的图像。通过设置Imagellrl属性

指定在该控件中显示的图像。在单击ImageButton控件时,将同时引发Click和

Command事件。使用OnClick事件处理程序,可以通过编程方式确定单击的图像位

置的坐标。然后,可以根据坐标值编写响应代码。注意原点(0,0)位于图像的左上角。

可以使用OnCommand事件处理程序使ImageButton控件的行为类似于命令按

钮。使用CommandName属性,可以将命令名与该控件相关联。这允许在同一网页上

放置多个ImageButton控件。然后可以通过编程方式在OnCommand事件处理程

序中标识CommandName属性的值,以确定在单击每个ImageButton控件时应

执行的适当操作。还可使用CommandArgument属性传递有关命令的附加信息,如

指定升序顺序。

由于<asp:lmageButton〉元素没有内容,因此可以使用/>结束该标记,而

不必使用单独的结束标记。

下面的代码示例1-4:使用单文件代码模型,如果直接将该代码示例复制到代码隐藏

文件,则可能无法正常运行。必须将此代码复制到扩展名为.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"/>//按扭调用方法

<br/><br/>

<asp:labelid="Labellnrunat='*server"/>

</form>

</body>

</html>

2.6HyperLink控件

使用HyperLink控件在页上创建一个可使您移动到其他页或位置的链接。使用

NavigateUrl属性指定要链接到的页或位置。链接既可显示为文本也可显示为图像。若

要显示文本,请设置Text属性或将文本放置在HyperLink控件的开始和结束标记之

间。若要显示图像,请设置ImageUrl属性。

由于<asp:HyperLink>元素不需要包含内容,因此可以使用/>结束该标记。

如果同时设置了Text和ImageUrl属性,则ImageUrl属性优先。如果图像不可

用,则显示Text属性中的文本。在支持“工具提示”功能的浏览器上,在将鼠标指针放在

HyperLink控件上时将显示Text属性的值。

通过设置Target属性可以指定用于显示链接页的框架或窗口。值必须以a到z(不

区分大小写)范围内的字母打头,但下列以下划线打头的特殊值除外:

_blank在没有框架的新窗口中显示链接页。

.parent在直接框架集父级中显示链接页。

_self在具有焦点的框架中显示链接页。

_top在没有框架的完全窗口中显示链接页。

文本在HyperLink控件中显示之前并非HTML编码形式。这使得可以在文本中

的HTML标记中嵌入脚本。如果控件的值是由用户输入的,请务必要对输入值进行验证

以防止出现安全漏洞。

使用HyperLinkWeb服务器控件在应用程序的页面之间导航时,您可以使用

颗化符通配符来表示应用程序的根目录,而不需要将目录名硬编码为应用程序相

对URLo例如,您可以使用“~/Default.aspx",从应用程序的任何子目录中的任何页

导航回应用程序的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:////导向网址

Text=nMicrosoftOfficialSite**〃显示文本

Target="_new”

runat="server"/>

</form>

</body>

</html>

2.7DropDownList控件

使用DropDownList控件创建单项选择下拉列表控件。可以通过设置

BorderColor,BorderStyle和BorderWidth属性来控制DropDownList控件

的外观。

若要指定在DropDownList控件中显示的项,请为每个项在DropDownList

控件的开始标记与结束标记之间放置一个Listitem元素。

DropDownList控件还支持数据绑定。若要将控件绑定到数据源,请首先创建数

据源狈ArrayList),该数据源包含要显示在控件中的项。下一步,使用DataBind方

法将数据源绑定到DropDownList控件。使用DataTextField和

DataValueField属性分别指定数据源中哪个字段绑定到控件中每个列表项的Text和

Value属性。现在,DropDownList控件将显示数据源中的信息。

使用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控件创建允许进行单项或多项选择的列表控件。使用Rows属性指

定控件的高度。若要启用多项选择,请将SelectionMode属性设置为Multiple.

若要指定要在ListBox控件中显示的项,请针对每项在ListBox控件的开始标记和结

束标记之间放置一个Listitem元素。

ListBox控件还支持数据绑定。若要将控件绑定到数据源,请先创建一个数据源,

例如一个DataSourceControl对象,它包含要在控件中显示的项。下一步,使用

DataBind方法将数据源绑定到ListBox控件。使用DataTextField和

DataValueField属性分别指定将数据源中哪个字段绑定到控件中每个列表项的Text

和Value属性。现在,ListBox控件将显示数据源中的信息。

如果SelectionMode属性设置为MuItiple,请通过循环访问Items集合以及

测试该集合中每个项的Selected属性,来确定ListBox控件中的选定项。如果

SelectionMode属性设置为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>//列表内容

<asp:ListItem>Item2</asp:Listltem>

<asp:ListItem>Item3</asp:Listltem>

<asp:ListItem>Item

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论