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

asp.net|程序|控件|设计

       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)。这个机制同样适应于处理其他的服务器控件。
     

时间: 2024-08-31 12:40:51

使用ASP.NET控件进行程序设计的相关文章

asp.net控件DataList分页用法_实用技巧

本文实例讲述了asp.net控件DataList分页用法.分享给大家供大家参考,具体如下: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ViewState["Page"] = 0; Bangding(); } } //绑定数据 public void Bangding() { PagedDataSource pds = new PagedDataSource(); pds.DataS

asp.net控件Repeater说明

asp.net控件Repeater说明 在 .aspx 页面中创建一个 Repeater 控件.<HeaderTemplate> 元素中的内容在输出中仅出现一次,而 <ItemTemplate> 元素的内容会对应 DataSet 中的 "record" 重复出现,最后,<FooterTemplate> 的内容在输出中仅出现一次. 在 <ItemTemplate> 元素后添加 <AlternatingItemTemplate>

ASP.NET控件开发之“代码紧凑原则”

asp.net|控件|控件开发    我们知道制作一个控件,一般比只实现同样功能的模块要复杂,因为我们需要考虑更多的异常和适应性,才能达到我们整合和复用代码的效果.而当我们开发一个ASP.NET控件时,不管我们的控件有多么复杂的功能和UI表现,我们最终在客户端浏览器里得到的都只是HTML代码和脚本的组合.    而就是这些控件生成的HTML代码,它们的格式是不是就可以随意处理呢.那么不能随意又是什么意思?难道我们必须要保证HTML代码的排版,并保持HTML良好的层次缩进什么的吗?这里刚刚相反,我

使用Control Adapters优化Asp.net控件

asp.net|控件|优化 有些时候Asp.net 控件默认状态下生成的html代码,不能满足一些特定的需要.比如 我们想让用户做一些选择,可以很容易的用如下代码实现 <asp:CheckBoxList runat="server">   <asp:ListItem Text="One" />   <asp:ListItem Text="Two" />   <asp:ListItem Text="

介绍一个免费的具备数据显示/录入/更新/删除功能的asp.net控件

asp.net|控件|数据|显示 我不能说它比datagrid更强, 因为datagrid有很多深层次的东西可以发掘,但是我能说它比datagrid更易用,更实用,因为它已经轻松实现如下功能,同时,它是完全免费的,不需要注册,没有任何的功能限制. 1. 通过属性设置数据表的显示2. 客户端数据排序3. 各种字段类型的格式化显示4. 所有数据表轻松实现内置的数据添加.更新.删除功能 5. 提供密码字段的支持并使用32位MD5编码6. 添加.更新图象字段.链接文件字段时自动上传文件 7. 上传图片时

为ASP.NET控件加入快捷菜单(1)

asp.net|菜单|控件 为ASP.NET控件加入快捷菜单(1)           虽然快捷菜单在桌面应用程序中已经是非常通用的元素,但是由于在象ASP.NET这样的基于服务器的技术没有很好的描绘,所以在Web应用程序中快捷菜单并不是很通用.要想使用快捷菜单,浏览器必须高度支持DHTML和丰富事件模式,例如:Microsoft Internet Explorer 5.0及更高版本,或者Netscape 6.0等.然而,各种浏览器的对象模式虽然功能上大至相同,但是成员各名字却各不相同,这就需要

Cutting Edge:为ASP.NET控件加入快捷菜单(2)

asp.net|菜单|控件 Cutting Edge:为ASP.NET控件加入快捷菜单(2)英文原文:Adding a Context Menu to ASP.NET Controls作者:Dino Esposito翻译:刘瑞才源码:CuttingEdge0502.exe 编程接口 我们的ContextMenu控件从WebControl继承并执行INamingContainer接口 public class ContextMenu : WebControl, INamingContainer 图

asp.net控件加載

asp.net|控件 1. 使用Page.ParseControl2. 使用base.LoadControl第一部分:加载模板 下面是一个模板"<table width=100%><tr><td width=100% colspan=2 runat=server id=ContainerTop></td></tr><tr><td width=30% runat=server id=ContainerLeft>&l

为ASP.NET控件添加设计时支持

asp.net|控件|设计 简介 Microsoft ASP.NET 为开发人员提供了一种适用于 Web 开发的.功能最为强大的新工具:服务器控件.服务器控件使开发人员能够在短时间内开发出响应速度快而且功能强大的 Web 应用程序,所需的时间与在典型的 ASP 中创建类似应用程序的时间差不多. ASP.NET 服务器控件之所以能够提供生产效率,关键原因之一在于它为 Microsoft Visual Studio .NET 开发环境中的服务器控件提供了丰富的设计时支持.开发人员可以将服务器控件从