接上篇……..

通过查看System.Web.UI.HtmlControls命名空间,我们可以发现,很多HTML对应的标签都可以通过添加runat=”server”属性转化为服务器控件,比如<table>会转化为HtmlTable对象,但像<input >标签可以通过type属性对应不同的服务器对象。当html内的标签没有和上图中的服务器控件匹配时,所有不匹配的html标签都会通过添加runat=”server”转化为HtmlGenericControl服务器控件。下面是对应的服务器控件类与HTML标签之间的对应关系:

HTML Tag

HTML Server Control

<form>

HtmlForm

<input type="text">

HtmlInputText

<input type="password">

HtmlInputText

<input type="radio">

HtmlInputRadioButton

<input type="checkbox">

HtmlInputCheckBox

<input type="submit">

HtmlInputButton

<input type="hidden">

HtmlInputHidden

<input type="button">

HtmlInputButton

<input type="image">

HtmlInputImage

<input type="file">

HtmlInputFile

<button>

HtmlButton

<select>

HtmlSelect

<textarea>

HtmlTextArea

<img>

HtmlImage

<a>

HtmlAnchor

<table>

HtmlTable

<tr>

HtmlTableRow

<td>

HtmlTableCell

其他标签

HtmlGenericControl

 

Demo:动态构建html表格

通过在前台设置表格的行(x)和列(y),动态的利用System.Web.UI.HtmlControls命名空间下的控件动态的进行设置表格的大小:

前台代码如下:

<h3>HTML Controls</h3>

X

<input type="text" id="XTextBox" runat="server" /><br />

<br />

Y

<input type="text" id="YTextBox" runat="server" /><br />

<br />

<input type="submit" id="BuildTableButton" runat="server"

value="Build Table" onserverclick="BuildTableButton_ServerClick" /><br />

<br />

<span id="Span1" runat="server"></span>

</div>

后台代码如下:

protected void BuildTableButton_ServerClick(object sender, EventArgs e)

{

int xDim = Convert.ToInt32(XTextBox.Value);

int yDim = Convert.ToInt32(YTextBox.Value);

BuildTable(xDim, yDim);

}

private void BuildTable(int xDim, int yDim)

{

HtmlTable table;

HtmlTableRow row;

HtmlTableCell cell;

HtmlGenericControl content;

table = new HtmlTable();

table.Border = 1;

for (int y = 0; y < yDim; y++)

{

row = new HtmlTableRow();

for (int x = 0; x < xDim; x++)

{

cell = new HtmlTableCell();

cell.Style.Add("font", "18pt");

cell.Style.Add("background-color", "blue");

cell.Style.Add("color", "red");

content = new HtmlGenericControl("SPAN");

content.InnerHtml = "X:" + x.ToString() +

"Y:" + y.ToString();

cell.Controls.Add(content);

row.Cells.Add(cell);

}

table.Rows.Add(row);

}

Span1.Controls.Add(table);

}

这段代码通过构建HtmlTable对象,然后在其内部通过循环的方式加入tr和td.最后将结果放入<span>标签中显示。结果如下图:

注意下面几行代码:

cell = new HtmlTableCell();

cell.Style.Add("font", "18pt");

cell.Style.Add("background-color", "blue");

cell.Style.Add("color", "red");

可以通过html的style属性的add方法添加CSS的键-值对应(有点HashTable的感觉),在render(输出)到客户端的过程中会自动应用其CSS样式(注意,因为全部是string作为键和值的参数,所以要小心你的拼写J)

System.Web.UI.WebControls命名空间

在这个命名空间下封装了标准的Web控件.命名空间图示如下:

      如图所示,在System.Web.UI.WebControls命名空间下的控件被分成4种类型

1. 简单控件

2. 列表控件(List)

3. 富应用控件(Rich)

4. 验证控件

1. 简单控件

简单控件有点像封装在System.Web.UI.HtmlControls命名空间里的控件,每一个控件对应一个HTML标签,TextBox除外.控件和Html标签的对应关系如下:

HTML Tag

Simple Web Control

<input type="text">

TextBox with TextMode=Single

<input type="password">

TextBox with TextMode=Password

<textarea>

TextBox with TextMode=MultiLine

<input type="checkbox">

CheckBox

<input type="radio">

RadioButton

<input type="submit">

Button

<input type="image">

ImageButton

<button>

Button

<select>

DropDownList

<select size=3>

SelectList with Rows=3

<textarea>

HtmlTextArea

<img>

Image

<a>

HyperLink, LinkButton

<table>

Table

<tr>

TableRow

<td>

TableCell

<table>

Panel

<span>

Label

2列表控件

  列表控件在简单控件的基础上,增加了数据源。从CheckBoxList控件到RadioButtonList控件,在到强大的GridView控件,提供了重复生成不同HTML代码的能力.

3富应用控件

富应用控件是那些将需要大量HTML拼接起来的东西转化为简单的一个控件,最有代表性的就是Calender控件,可以通过简单的应用就可以创造出非常复杂的效果.

4验证控件

验证控件通过提供客户端以javascript为基础的验证方式来减少与服务器的交互,从而达到减少网络流量..

System.Web.UI.WebControls?System.Web.UI.HtmlControls?

    这两个命名空间内有很多控件貌似是重叠的.尤其是HTML控件和asp.net的简单控件都是以控件名称和html标签进行匹配.但Asp.net控件更加丰富,所以在不是非必要的情况下,最好使用WebControl命名空间内的控件并作为基类。

转载于:https://www.cnblogs.com/CareySon/archive/2009/09/30/1577068.html

Asp.net控件开发学习笔记(二)-控件开发基础相关推荐

  1. amazeui学习笔记二(进阶开发4)--JavaScript规范Rules

    amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...

  2. amazeui学习笔记二(进阶开发2)--Web组件简介Web Component

    amazeui学习笔记二(进阶开发2)--Web组件简介Web Component 一.总结 1.amaze ui:amaze ui是一个web 组件, 由模板(hbs).样式(LESS).交互(JS ...

  3. Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用

    Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用 大概要写到结尾了,最后几篇就将手册的各常用命令再看一遍,组合一下,并列举出常见的一些有用的操作. DATA_COLOR_MAP数 ...

  4. Polyworks脚本开发学习笔记(二)-TREEVIEW基本操作

    Polyworks脚本开发学习笔记(二)-TREEVIEW对象基本操作 TREEVIEW对象选择 选择/不选对象 TREEVIEW OBJECT SELECT ALL 全部对象选择,包括参考/数据/对 ...

  5. Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告

    Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告 Polyworks中,3D场景的视图可用标准视角及等轴侧视角.项目视角等方式调用,也可以用txt格式保存下来调用,如果以脚本的形 ...

  6. Python-web开发学习笔记(1)--- HTML基础

    大家好,我是尚拙谨言,欢迎来到本专栏.本专栏主要是为web开发学习服务的,一共分为3个部分:前端介绍.数据库.Django,均为python web开发的学习笔记,希望能帮助到大家,也以此作为我个人的 ...

  7. Asp.net控件开发学习笔记(三)-控件开发基础

    封装      在asp.net中,控件被分为两类.用户控件和自定义服务器控件.前者就是我们经常用来将一些可复用的内容封装成的.ascx文件.这里主要研究后者. 创建自定义服务器控件      创建自 ...

  8. IOS开发学习笔记018- 一般控件的使用

    1.移动 2.动画 3.缩放 3.旋转 4.简化代码 5.总结 UIButton 的两种状态 normal highlighted  1.移动 OC语法规定:不允许直接修改某个对象中结构体属性的成员. ...

  9. 龙芯1C300B主板V3.4嵌入式开发学习笔记二

    1 PMON更新 接着笔记一:https://blog.csdn.net/weixin_38709708/article/details/81271493 笔者手中的开发板一开始就烧写了PMON,当是 ...

  10. CSS学习笔记(二) 移动WEB开发

    思维导图 文章目录 思维导图 1. 移动端基础 1.1 浏览器现状 1.2 手机屏幕现状 1.3 移动端调试方法 2. 视口 2.1 布局视口 2.2 视觉视口 2.3 理想视口 2.4 视口总结 2 ...

最新文章

  1. windows 本地安全设置 灰色_安全检查与加固
  2. 如果有人把支付宝的服务器炸了,你的两毛五是不是就没了?
  3. SEO优化简要工作流程
  4. rhel5下插上耳机后喇叭还会响
  5. 玩转Jquery中的动画效果(animate方法)
  6. 学生信,不是贪多的,而是求精的!
  7. java实现什么接口进行排序_使用Java中Comparator接口实现自定义排序
  8. SQL Server元数据损坏(metadata corruption)修复
  9. 不支持某些浏览器_水狐:一个支持旧版扩展的火狐复刻版
  10. 收藏!从十篇顶会论文解读计算机视觉的未来之路!
  11. Linux加密框架中的算法和算法模式(2)——模式介绍
  12. Python模块大全
  13. vue接入腾讯防水墙代码
  14. 什么是CDN加速技术?网站用CDN有什么好处
  15. 导读:如何通关自然语言处理面试
  16. 二阶系统的单位阶跃响应与比例控制器
  17. linux gtestgmock安装
  18. 使用LCN框架解决分布式事物
  19. 【必看】分析各大招聘网站
  20. Mysql 杂文记事

热门文章

  1. 【VMware混合云】掀起你的盖头来
  2. 【老孙随笔】怎样才能当上项目经理?
  3. Linux安装配置 VNC Server
  4. pcb布线拐角处打地孔_嵌入式开发必看: PCB设计的这几个问题,你能明白了吗?...
  5. filebeat配置介绍
  6. jenkins内置环境变量
  7. 修改docker内mysql配置后无法启动解决方法
  8. mysql建表时创建索引语句_创建表的时候创建索引
  9. 【渝粤教育】电大中专药物分析技术基础 (2)_1作业 题库
  10. 【渝粤题库】陕西师范大学200071 古代汉语 作业(高起本、高起专)