动态生成html控件
html服务器控件
1、关于html服务器控件
实质就是一个html元素,只是加一个runat属性,属性值为server。那么它就是一个html服务器控件了
html服务器控件只能写在服务器表单中
代码示例
<div id="div1" runat="server"></div> |
这样就可以在后台通过id调用 此html元素了
2、自定义html服务器控件操作
创建html服务器控件公共对象
HtmlGenericControl HTMLGC1 = new HtmlGenericControl(); |
此时的对象:只拥有开始标签和结束标签,且默认标签名(TagName属性)为span。如何指定?下面详解
HtmlGenericControl类引自: System.Web.UI.HtmlControls(此命名空间拥有几乎所有的html服务器元素对象)
更改标签名
HTMLGC1.TagName = "div"; |
这样就可以自定义任意元素了
增加属性
为之前创建的HTMLGC1元素添加属性
第1种 |
HTMLGC1.Attributes["id"] = "div1"; |
第2种 |
HTMLGC1.Attributes.Add("id", "div1"); |
注:两种增加方式效果一样。怎么写看自己爱好
例子所示为:添加一个id属性,属性值为"div1"。其他属性应该可以猜到了,不再多讲
知识扩展:所有服务器控件对象都可使用此属性动态追加属性,
增加方式:在原有属性后面追加,即使有相同的也不会覆盖
指定位置 添加HTML元素对象
首先要在表单中你需要的位置写下
<span id="div1" runat="server"></span> |
然后调用此元素,进行增加 最初创建的HTMLGC1元素对象。见下
div1.Controls.Add(HTMLGC1); |
增加方式:div1标签之间 之前的html代码 底部追加
知识扩展
首先看这段代码
<span id="div1" runat="server"></span> |
根据上面知识,现在可以猜到,加runat="server"后的实质效果,相当于在后台代码这样写下
HtmlGenericControl div1 = new HtmlGenericControl(); div1.Attributes["id"] = "div1"; Form.Controls.Add(div1); |
而实际上aspx页面被编译为Page类时,就是生成这样的代码