net 控件总结.docx

上传人:b****7 文档编号:10791018 上传时间:2023-02-22 格式:DOCX 页数:17 大小:25.83KB
下载 相关 举报
net 控件总结.docx_第1页
第1页 / 共17页
net 控件总结.docx_第2页
第2页 / 共17页
net 控件总结.docx_第3页
第3页 / 共17页
net 控件总结.docx_第4页
第4页 / 共17页
net 控件总结.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

net 控件总结.docx

《net 控件总结.docx》由会员分享,可在线阅读,更多相关《net 控件总结.docx(17页珍藏版)》请在冰豆网上搜索。

net 控件总结.docx

net控件总结

1.label控件

for的意思是,这个lable是为哪个元件服务的。

而accesskey则定义了访问这个元件的热键。

比如,我们有一个名字叫name的单行输入框,我们是这样定义这个元件的:

,那么,我们的

姓  名(n):

大家可以看见,这个

例子:

姓  名(n):


电子邮件(e):

注:

对客户端而言

2.TextBox控件

EnableViewState属性

ASP.Net提供了EnableViewState属性,系统默认的值为true。

当设置为true时,在传递状态值时就包括该控件;如果设置为false,则传递状态值时则不包括它。

既然状态值不包括该控件,则客户端对它进行的操作,服务器端是不响应的。

我们可以做个实验,在Button1_Click事件中,编写代码:

ListBox.Items.Add(”客户端点击按钮一次!

”);

此时运行该应用程序,单击网页上的按钮,在ListBox中会添加内容,不断地单击,内容则不断添加。

如果我们将ListBox的EnableViewState属性改为false时,不断单击按钮,则只能添加一次。

这样有什么好处呢?

如果我们在开发Web应用程序时,某些控件是不需要接受用户的操作或只需要接受一次操作的时候,我们可以将这些控件的EnableViewState属性改为false,这样可以优化我们的程序,提高网络访问的速度。

3.Button控件

CausesValidation属性,CommandArguments属性和CommandName属性

在一个页面又相关联的多个Button控件时,通过设置控件的OnCommand事件(使得多个Button控件共享事件名称,然后根据各个Button控件的CommandName属性来判断哪个Button控件被触发)

通过:

e.CommandName等来判断

Click事件和Command事件的区别:

当有与Button相关的命令名时用Command事件,否则一般用Click事件

4.LinkButton控件

基本上同Button控件

5.ImageButton控件

基本上同Button控件,Imageurl属性表示按钮上的图表来源,AlternateText属性表示当图片无法正常显示时,替代的文本

6.HyperLink控件

7.DropDownList控件

DropDownList控件的使用(数据绑定)

一、在页面初始化时候将集合绑定到DropDownList

publicvoidPage_Load(Objectsrc.EventArgse)

{

ArrayListarrValue=newArrayList();

arrValue.add("kk");

arrValue.add("dd");

arrValue.add("aa");

arrValue.add("cc");

//将数组绑定到DropDownList控件的DataSource属性

ddl.DataSource=arrValue;

ddl.DataBind();

}

//实现

选项有:

DropDownListid="ddl"runat="server"/>

二、在页面初始化的时候向DropDownList添加数据publicvoidPage_Load(Objectsrc.EventArgse)

{

ddl.Items.Add(newListItem("text","value");

ddl.Items.Add(newListItem("text1","value1");

ddl.Items.Add(newListItem("text2","value2");

}

//实现

选项有:

DropDownListid="ddl"runat="server"/>

三、将DataReader读取的数据动态绑定到DropDownList

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!

Page.IsPostBack)

{

stringmyconnstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath(".")+"..\\database\\db.mdb";

OleDbConnnectionmyconn=newOleDbConnnection(myconnstr);

stringsqlstr="select*fromtest";

OleDbCommandmyComm=newOleDbCommand(sqlstr,myconn);

myComm.Connection.Open();

OleDbDataReaderdr=myComm.ExecuteReader();

while(dr.Read())

{

bj.Items.Add(newListItem(dr["bjmc"].ToString(),dr["id"].ToString()));//增加Item

//或者这样也能绑定,

//DropDownList1.Items.Add(newListItem(myReader[1].ToString(),myReader[0].ToString()));//增加Item

//都是要在知道Sql语句或者数据表结构的前提下才能这样绑定

}

dr.Close();

}

}

四、将DataSet读取的数据动态绑定到DropDownList

SqlConnectionsqlconn=newSqlConnection();

sqlconn.ConnectionString="workstationid=localhost;packetsize=4096;user

id=sa;datasource=db1;persistsecurityinfo=False;initialcatalog=DB";

sqlconn.Open();

SqlDataAdaptersqldar=newSqlDataAdapter("selectUserNamefromforums_Users",sqlconn);

sqldar.SelectCommand.CommandType=CommandType.Text;

DataSetDs=newDataSet();

sqldar.Fill(Ds,"Users");

ddl.DataSource=Ds.Tables["Users"].DefaultView;

ddl.DataTextField="UsersName";

ddl.DataBind();

sqlconn.Close();

第一行是创建一个sql连接对象sqlconn;

第二行是给新建的sql连接对象sqlconn的连接字符串赋予正确的值;

第三行是让sql连接对象sqlconn打开,连接sql数据库;

第四行是创建一个sql适配器对象sqldar,并同时让其使用sqlconn对象执行一条sql查询语句;

第五行是设置sqldar对象的命令类型为文本型;

第六行是创建一个数据集对象Ds;

第七行是将sqldar执行的结果填充到Ds中,并将命名为Users;

第八行是将DropDownList的数据源设置为Ds的Users,并使用默认的查看模式;

第九行是设置DropDownList空间的显示项对应的字段名UsersName;

第十行是执行DropDownList的数据绑定方法;

第十一行是关闭sqlconn对象。

五、使用DataBinder.Eval(Container.DataItem,"表字段")输出绑定数据protectedvoidPage_Load(objectsender,EventArgse)

{

if(!

Page.IsPostBack)

{

stringmyconnstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath(".")+"..\\database\\db.mdb";

OleDbConnnectionmyconn=newOleDbConnnection(myconnstr);

stringsqlstr="select*fromtest";

OleDbCommandmyComm=newOleDbCommand(sqlstr,myconn);

myComm.Connection.Open();

OleDbDataReaderdr=myComm.ExecuteReader();

ddl.DataSource=dr;

ddl.DataBind();绑定倒DD1中

}

}

在UI界面的DDL中直接调用,绑定的方法调用

DataBinder.Eval(Container.DataItem,"表字段")

8.ListBox控件

基本上同DropDownList控件

9DatAGrid控件

1)数据格式设置

格式字符串资料结果

"{0:

C}"12345.6789$12,345.68

"{0:

C}"-12345.6789($12,345.68)

"{0:

D}"1234512345

"{0:

D8}"1234500012345

"{0:

E}"12345.67891234568E+004

"{0:

E10}"12345.67891.2345678900E+004

"{0:

F}"12345.678912345.68

"{0:

F0}"12345.678912346

"{0:

G}"12345.678912345.6789

"{0:

G7}"1234567891.234568E8

"{0:

N}"12345.678912,345.68

"{0:

N4}"123456789123,456,789.0000

"Total:

{0:

C}"12345.6789Total:

$12345.68

其常用的日期格式如下表所示:

格式说明输出格式

d精简日期格式MM/dd/yyyy

D详细日期格式dddd,MMMMdd,yyyy

f完整格式(longdate+shorttime)dddd,MMMMdd,yyyyHH:

mm

F

完整日期时间格式

(longdate+longtime)

dddd,MMMMdd,yyyyHH:

mm:

ss

g一般格式(shortdate+shorttime)MM/dd/yyyyHH:

mm

G一般格式(shortdate+longtime)MM/dd/yyyyHH:

mm:

ss

m,M月日格式MMMMdd

s适中日期时间格式yyyy-MM-ddHH:

mm:

ss

t精简时间格式HH:

mm

T详细时间格式HH:

mm:

ss

2)事件

1、ItemCommand、CancelCommand、DeleteCommand、EditCommand、UpdateCommand

也就是DataGrid中,点击Button、LinkButton后执行的事件,执行的事件取决于按钮的CommandName。

其实最主要的一个是ItemCommand,而后面四个都只是ItemCommand的一小部分,

比如一个按钮的CommandName为"Cancel",当返回后,首先执行的是ItemCommand事件,然后才是CancelCommand事件。

2、PageIndexChanged

如果你的DataGrid是分页的,那当你在DataGrid上点击Pager上的1、2、3或者<、>时,就会激发这个事件。

在这个事件里面,你可以用e.NewPageIndex来读取要改变的页,然后赋值给DataGrid的CurrentPageIndex属性,最后不要忘了,还要设置DataSource,还要执行DataBind。

注意:

DataList中没有这个事件,如果需要在DataList中分页,可以一段一段的读取数据,然后把当前段的数据绑定到DataList上。

3、ItemDataBound,ItemCreated

首先要说的是这两个事件的发生时间。

ItemDataBound嘛,只要执行了DataBind方法,就会马上激发这个事件。

ItemCreated呢,如果页面是第一次访问(Page.IsPostBack=false),那在第一次执行DataBind的时候,会先激发ItemCreated事件,也就是说,执行了DataBind后,首先会用ItemCreated来建立Header行,然后用ItemDataBound来绑定Header行,再用ItemCreated来建立第一行,再调用ItemDataBound来绑定第一行,也就是说ItemCreated和ItemDataBound是交替执行的。

页面返回时,也会执行ItemCreated事件,在Page_Load之前,但是这时候就不会再执行ItemDataBound事件了。

所以,如果你想在DataGrid里动态添加什么控件,就需要在ItemCreated事件中,而不是在ItemDataBound事件中。

9.DataList控件

如何使用Datalist控件?

参照:

10.Repeater控件

11.如何使用DataGrid、DataList、Repeater的讨论、比较

WEB开发自从有了基于脚本的WEB编程技术(如ASP)以来,经历了一个漫长的过程。

通过使用微软的ASP.Net技术,传统的ASP中大量的、单调乏味的、重复性的编程工作成为了历史。

例如,象大多数ASP程序员所知的,在ASP中显示数据库内容所需要的过程:

  建立数据库连接

  用SQL查询装载ADO数据集

  显示所需要的任何HTML代码

  遍历数据集中的记录

    输出记录字段值及相关的HTML

    移向下一条记录

  循环

  显示所需要的HTML代码

  又如,为了在表格中显示记录集的内容,我们需要输出一个

标签,然后开始循环。

在循环中,每输出一条记录,需要先输出一个

标签以及若干对标签。

最后,以一个

标签和
标签结尾。

  在传统的ASP中使用的这种方法有一个主要的缺点:

HTML代码与ASP源代码不得不纠缠在一起。

对于那些也许并不理解程序设计的页面设计者或图形艺术家来说,想要更改HTML内容无疑是一场灾难。

另外,代码的产生量也是惊人的,因为我们不仅需要从数据库中取得数据,还需要使之可视化。

  好在,ASP.Net提供了三个数据控件,使得原本在ASP中繁杂的工作变得简单。

这三个控件属于数据Web控件,分别是DataGrid,DataList和Repeater。

如果你对ASP.Net数据库编程有所了解的话,你至少应该有使用其中一种控件的经验。

大多数情况下,我们从学习使用DataGrid开始,因为它的功能相对完整(数据显示、分页、编辑)并相对简单。

然而,DataGrid并非总是正确的选择。

  本文将分别论述每个数据控件不同于其它数据控件的特点,以及由此带来的优缺点。

正因为每种数据控件都有其自身的缺陷,因此在程序设计中并不存在最完美的选择。

你必须权衡三种控件的优缺点并决定哪一种更加适合你的程序。

  为了帮助比较,在对每个控件进行论述时,我们会专注于三个特性:

可用性(从页面访问者的角度)、开发时间和性能。

我们首先描述一下这三种控件的共性,然后分别深入地讨论三种控件的特点,每种控件如何实现以及如何体现可用性、开发时间和性能。

[数据控件(DataWebControls)的共同点]

  在我们讨论三种控件各自特性之前,有必要先看一看它们之间的共同点。

一般来说,从编程流程来看,最显著的共同点就是,这三种控件都是用来显示数据的。

另一个共同点是需要一个数据绑定的代码来将数据与控件绑定。

这个过程只需要两行代码:

  dataWebControlID.DataSource=someDataSource

  dataWebControlID.DataBind()  

  一般情况下,someDataSource对象是指数据控件的数据源属性,可以是DataSet,SqlDataReader,OleDbDataReader或一组数据(如数组、数组列表或其它的属于System.Collection名空间的类)。

不过,任意实现IEnumerable接口的对象也可以被绑定在数据控件上。

  DataBind()方法遍历一个特定的DataSource中的记录,并对其中的每条记录,建立一个条目并对应数据控件的Item集。

数据控件中的每个条目将成为一个类的实例。

这个类因数据控件的不同而有所区别。

例如,DataGrid中的每个条目是DataGridItem类的一个实例,而Repeater中的条目则是RepeaterItem类的一个实例。

  之所以使用不同的类来实例化不同数据控件的条目,是因为不同的数据控件将会使用不同的方式显示数据及相应的HTML代码。

例如,DataGridItem类继承自TableRow类,也就是说,每个DataGridItem的实例或多或少地可以看成一个表格中的一行。

这是因为DataGrid被设计成可以借助HTML中的

标签以表格的形式显示数据,因此每条记录就是一个表格行。

而Repeater则被设计成可以自由定义数据输出的方式。

所以,RepeaterItem并不继承自TableRow就不奇怪了。

  另一个三种数据控件的相同点是每种控件都被允许使用模板来显示数据。

DataList和Repeater控件必须使用模板来输出数据,而DataGrid则允许通过TemplateColumn而只使用模板来显示一列(在DataGrod单元中详细论述)。

  另一个不是十分值得比较的地方是:

DataGrid和DataList都是继承自WebControl类,而Repeater则是继承自Control类。

WebControl类包含一些用于美化的属性,如:

BackColor、ForeColor、CssClass、BorderStyle等等。

这说明在使用DataGrid或DataList时,你可以设定这些属性来个性化输出。

Repeater控件则不具有这些属性。

我们会在Repeater单元讨论如何使用模板来美化Repeater的输出。

[DataGrid控件]

  在三种控件当中,DataGrid是迄今为止功能最为丰富的,但也是最不灵活的控件。

这种在输出HTML时不够灵活的特点是因为它最初就是被设计成以表格的形式输出数据。

每一条记录输出时会建立一对

标签,而每个字段的值输出时则建立一对
标签。

  DataGrid含有几个属性可以提高其可用性。

如,通过设置DataGrid的AllowSorting属性为true,并加入少量代码,DataGrid就具备了按不同字段排序的功能。

此外,设定相关属性来实现分页以及单条记录编辑的功能更加增强了DataGrid的可用性。

  除了在可用性方面的支持以外,DataGrid同时也相当节省开发时间。

使用DataGrid在WEB页面上显示数据只需要两行代码。

一行用来设定与DataGrid绑定的数据源(DataSource),另一条则用来执行绑定命令(DataBind())。

当然,在Repeater中实现这样的功能并非不可能,只是,相比较使用DataGrid而言,你需要花费相当多的时间和精力来实现这些功能。

  尽管DataGrid有这样那样令人印象深刻的优点,它的两个缺点也同样不能忽视。

首先,如前所述,DataGrid在个性化输出数据方面功能有限。

当然,你可以定制字体、颜色以及线条宽度等等,但它始终只能是HTML表格。

  每个在DataGrid中的列都是DataGridColumn类的一个实例。

有五种DataGrid列的形式:

  ·BoundColumn

  ·ButtonColumn

  ·EditColumn

  ·HyperLinkColumn

  ·TemplateColumn

  每种类型都会以一种方式允许页面访问与DataGrid进行交互。

例如,BoundColumn将DataSource的字段值显示为纯文本;而HyperLinkColumn则将之显示为一个超级链接。

另外,开发者可以通过写一个继承自DataGridColumn的自定义类来定制DataGrid列的样式。

  尽管DataGrid具有这么多的增强可用性的属性,却仍然显得死板而不够灵活。

这是因为,不论什么样的属性,都需要对DataGrid所生成的表格进行相关的设置而生效。

这无疑会使表格变得臃肿而失去灵活性。

例如,DataGridColumn的设置会对表格的每一行的相应列生效。

DataGrid的这种局限性阻碍了更有创意地显示数据。

比如,你希望每五条记录被显示在一行,或根本不想要表格来显示数据,你将不得不放弃使用DataGrid。

  DataGrid的第二个缺陷是它的性能。

在三种数据控件中,DataGrid是相对性能最差的。

由DataGrid所生成的ViewState将会相当庞大,特别是在DataGrid含有较多的行时。

当然,你也可以关闭ViewState功能,但代价是你将不能使用排序、分页以及记录编辑等功能。

  为了测量DataGrid的性能,我使用了微软的WebApplicationStressTool(WAST)。

精确的测试条件设定以及测试用代码将会在本文的结尾给出。

  WAST将会对WEB服务器发出对一个特定URL的请求。

每个测试将会针对一个URL在一分钟之内连续不断地请求。

WAST将会一个代表性能的数值,代表WEB服务器将会在一秒钟内执行ASP.Net页面多少次。

  两个测试将显示一个仅仅显示数

展开阅读全文
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1