HTML服务器控件的控件从System.Web.UI.HtmlControls.HtmlControl 类派生
标准服务器控件的控件从Control 类派生,并扩展.
前面我们都是使用Control来派生.我们有很多事需要自己做.如果使用WebControl我们可以方便不少.
当然要看情况而定.
怎样才能比较直观的看出它们的差别呢?
using System; using System.Web.UI; using System.Web.UI.WebControls;
namespace WebComponent
把以上几个控件都加入页面中.点下页面看下属性编辑器.就会发现差别了.
asp:Label相信大家很熟悉了.它便是继承至WebControl控件.
拉入一个Label控件.运行 <span >Label</span>
asp.net把Label翻译成span这个标签. 那要是我不想要span,我想要div行吗.
当然可以. public class WebStudy3Component : Label
{
protected override System.Web.UI.HtmlTextWriterTag TagKey
{
get
{
//return base.TagKey; 此标签便是span
return System.Web.UI.HtmlTextWriterTag.Div;
}
}
}
运行程序.<div ></div>
完成了第一步
接下来我们就来研究下<div ></div>是怎么出来的.
我们先来看看继承至Control的控件是怎么实现这个的
public class Control1 : Control
那继承至WebControl呢?我都没有绘.它是怎么出来呢?
public class WebStudy1Component : Label }
有了上面的基础之后,提升需求. <table width="500" >
<tr>
<td>阿鹏</td>
</tr>
</table>
做出这个.不要用Render直接绘出
public class WebStudy1Component : WebControl }
可见继承WebControl中绘制控件.主要工作已经转移到RenderContents(HtmlTextWriter writer)里了
|
请发表评论