Asp.net控件开发学习笔记(二)-控件开发基础
接上篇……..
通过查看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控件开发学习笔记(二)-控件开发基础相关推荐
- amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...
- amazeui学习笔记二(进阶开发2)--Web组件简介Web Component
amazeui学习笔记二(进阶开发2)--Web组件简介Web Component 一.总结 1.amaze ui:amaze ui是一个web 组件, 由模板(hbs).样式(LESS).交互(JS ...
- Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用
Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用 大概要写到结尾了,最后几篇就将手册的各常用命令再看一遍,组合一下,并列举出常见的一些有用的操作. DATA_COLOR_MAP数 ...
- Polyworks脚本开发学习笔记(二)-TREEVIEW基本操作
Polyworks脚本开发学习笔记(二)-TREEVIEW对象基本操作 TREEVIEW对象选择 选择/不选对象 TREEVIEW OBJECT SELECT ALL 全部对象选择,包括参考/数据/对 ...
- Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告
Polyworks脚本开发学习笔记(二二)-调取视角用脚本自动生成报告 Polyworks中,3D场景的视图可用标准视角及等轴侧视角.项目视角等方式调用,也可以用txt格式保存下来调用,如果以脚本的形 ...
- Python-web开发学习笔记(1)--- HTML基础
大家好,我是尚拙谨言,欢迎来到本专栏.本专栏主要是为web开发学习服务的,一共分为3个部分:前端介绍.数据库.Django,均为python web开发的学习笔记,希望能帮助到大家,也以此作为我个人的 ...
- Asp.net控件开发学习笔记(三)-控件开发基础
封装 在asp.net中,控件被分为两类.用户控件和自定义服务器控件.前者就是我们经常用来将一些可复用的内容封装成的.ascx文件.这里主要研究后者. 创建自定义服务器控件 创建自 ...
- IOS开发学习笔记018- 一般控件的使用
1.移动 2.动画 3.缩放 3.旋转 4.简化代码 5.总结 UIButton 的两种状态 normal highlighted 1.移动 OC语法规定:不允许直接修改某个对象中结构体属性的成员. ...
- 龙芯1C300B主板V3.4嵌入式开发学习笔记二
1 PMON更新 接着笔记一:https://blog.csdn.net/weixin_38709708/article/details/81271493 笔者手中的开发板一开始就烧写了PMON,当是 ...
- CSS学习笔记(二) 移动WEB开发
思维导图 文章目录 思维导图 1. 移动端基础 1.1 浏览器现状 1.2 手机屏幕现状 1.3 移动端调试方法 2. 视口 2.1 布局视口 2.2 视觉视口 2.3 理想视口 2.4 视口总结 2 ...
最新文章
- windows 本地安全设置 灰色_安全检查与加固
- 如果有人把支付宝的服务器炸了,你的两毛五是不是就没了?
- SEO优化简要工作流程
- rhel5下插上耳机后喇叭还会响
- 玩转Jquery中的动画效果(animate方法)
- 学生信,不是贪多的,而是求精的!
- java实现什么接口进行排序_使用Java中Comparator接口实现自定义排序
- SQL Server元数据损坏(metadata corruption)修复
- 不支持某些浏览器_水狐:一个支持旧版扩展的火狐复刻版
- 收藏!从十篇顶会论文解读计算机视觉的未来之路!
- Linux加密框架中的算法和算法模式(2)——模式介绍
- Python模块大全
- vue接入腾讯防水墙代码
- 什么是CDN加速技术?网站用CDN有什么好处
- 导读:如何通关自然语言处理面试
- 二阶系统的单位阶跃响应与比例控制器
- linux gtestgmock安装
- 使用LCN框架解决分布式事物
- 【必看】分析各大招聘网站
- Mysql 杂文记事
热门文章
- 【VMware混合云】掀起你的盖头来
- 【老孙随笔】怎样才能当上项目经理?
- Linux安装配置 VNC Server
- pcb布线拐角处打地孔_嵌入式开发必看:	PCB设计的这几个问题,你能明白了吗?...
- filebeat配置介绍
- jenkins内置环境变量
- 修改docker内mysql配置后无法启动解决方法
- mysql建表时创建索引语句_创建表的时候创建索引
- 【渝粤教育】电大中专药物分析技术基础 (2)_1作业 题库
- 【渝粤题库】陕西师范大学200071 古代汉语 作业(高起本、高起专)