分享
 
 
 

使用ASP.NET控件进行程序设计

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

ASP.NET 控件时ASP.NET架构的基本组成部分。从本质上讲,ASP.NET是.NET Framework中的类,可以在ASP.NET页面上映射控件声明。然后,那些类根据他们的属性,为控件创建HTML。由于类的对象是在运行时间与页面一起被编译的,因此开发人员可以按照面向对象的方式访问那些对象,例如读取和更改他们的属性、调用他们的方法和处理服务器端的事件等。在传统ASP程序设计中,服务端的VBScript代码和HTML标记是混和在一起的,容易引起混淆。而在ASP.NET程序设计中,由于能够以面向对象的方式访问对象,因此可以创建结构更好、可读性更强的代码。

1、 ASP.NET中的服务器控件

ASP.NET提供了许多不同的服务器控件,他们可以分为以下几类:

<1> HTML Server Controls(HTML 服务器控件):

这些控件是包含标准HTML标记的 类,它由runat="server"属性进行声明。

除了runat="server"属性之外,控件的其他声明 不变,但是通过代表控件的对象,可以在代码中访问、读取、更改控件的属性。例如, 支持runat="server"属性的3个标记是<a>、<select>和<input>。

<2> ASP.NET Web Form Controls:

这是另一组复制基本HTML标记(例如<input>、<a>、<select> 和<button>等)的功能的控件, 但是这组控件中的属性和方法是一致的,并且属性和方法的名字有一定的意义,因此, 开发人员就可以比较容易地声明和访问他们。HyperLink、 ListBox和Button等都是这类控件。

<3> ASP.NET list Controls(ASP.NET 列表控件):

这组控件具有一致的命名规则,并且扩展了基本Web Form Control的属性。它们可以与数据源进行绑定(例如数据库、XML文件和数组等),并且能够以各种各样的方式(例如列表、表格、网格等)显示数据。

<4> ASP.NET Templated Controls (ASP.NET模板控件):

这组控件为数据源中的每一个数据项而重复模板。他们允许您使用不同的模板去显示记录、编辑记录和强调重要的记录,并且还能够对分页的支持。

<5> ASP.NET Rich Controls :

通过设置这类控件的一些属性, 可以让这类高级控件生成HTML和JavaScript代码。这类控件的杰出代表就是Calendar控件,本章的内容中将对这类控件进行详细讨论。

<6> ASP.NET Validation Controls

通过页面上声明这类控件,可以很容易地根据一定的标准或用户定义的规则(例如输入不能为空、输入必须是数字、输入的数字必须大于某个值等)对相关的输入进行验证。

2 、通过编程的方式创建服务器控件

使用ASP.NET , 可以创建HTML服务器控件的实例、使用面向对象的方法设置控件的属性,并把控件添加到页面的Controls集合中,这样,所有的工作都完成了。

例如,下面的代码(HTMLServTest2.aspx中的代码) 是新ASPX页面的全部 内容:没有控件的声明,只有服务器端的Page_Load程序,这个程序动态地创建一个5行4列的表,并设置表的颜色和文本,然后在页面上把表显示出来:

<script runat="server" language="C#">

void Page_Load()

{

//create a new HTMLTable object

HtmlTable table1 = new HtmlTable();

HtmlTableRow row;

HtmlTableCell cell;

//set the table's styles

table1.Border =1;

table1.CellPadding =3;

table1.CellSpacing =3;

table1.BorderColor ="red";

for(int i=1; i<=5; i++)

{

//create a new row and set its background color

row = new HtmlTableRow();

row.BgColor =(i%2==0 ?"lightyellow" : "lightcyan");

for(int j=1; j<=4; j++)

{

//create a cell and set its text

cell = new HtmlTableCell();

cell.InnerHtml ="Row :" + i.ToString()+

"<br>Cell:"+j.ToString();

//add the cell to the current row

row.Cells.Add(cell);

}

//add the row to the table

table1.Rows.Add(row);

}

//add the table to page

Page.Controls.Add(table1);

}

</script>

上面的代码中有两个嵌套的循环:外层的循环创建行,然后进入内层的循环,内层的循环创建数据单元,并把数据单元添加到行的Cells集合中。当一次内层的循环结束时,带有数据单元的行就被添加到表的Rows集合中。最后一步是把表添加到页面的Controls集合中。执行的结果如图4-2。从创建的这个表中可以看到有多少个子控件(数据单元和行)被添加给父母的集合(Rows和Controls)。这个机制同样适应于处理其他的服务器控件。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有