zoukankan      html  css  js  c++  java
  • 控件开发初探

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

  • 相关阅读:
    (四)tensorflow-基础(数据类型,张量操作,数学运算)
    (三)tensorflow-gpu2.0之线性模型
    《莫得感情的coder》Alpha冲刺Scrum meeting 3
    《莫得感情的coder》Alpha冲刺Scrum meeting2
    《莫得感情的coder》Alpha冲刺Scrum meeting1
    实验八 团队作业4:团队项目需求建模与系统设计
    莫得感情的coder 实验七 团队作业3:团队项目需求分析与原型设计
    莫得感情的coder 实验六 团队作业2:Fit U健康管理小程序
    莫得感情的coder 实验五 团队作业1:软件研发团队组建与软件案例分析
    两台主机之间单向Ping不通的问题
  • 原文地址:https://www.cnblogs.com/HeroBeast/p/1052481.html
Copyright © 2011-2022 走看看