控件的顯示自然會離不開輸出html
一
中所有的標准控件都可以拿過來作為基類
一般的如果開發的控件從標准裡面找不到合適的
System
System
System
下面介紹下這三個類的關系跟區別
Control:只提供簡單的呈現
WebControl:建立了對控件外觀的支持
CompositeControl:是派生多個控件復合的
三者的關系
二
Control的呈現
Control類中的呈現是通過方法Render來實現的
protected internal virtual void Render(HtmlTextWriter writer){
HtmlTextWriter writer 參數是在運行時有調用Render方法的框架所提供
HelloWorld示例
public class HelloWorld : Control
{
protected override void Render(HtmlTextWriter writer)
{
writer
}
}
編譯之後
Control輸出html內容
在Render方法中我們要實現輸出html標簽跟樣式可以借助於
Picture示例
public class PicShow : Control
{
protected override void Render(HtmlTextWriter writer)
{
writer
writer
writer
writer
//Create Img Tag
writer
writer
writer
writer
writer
//End Of Div
writer
}
}
當你指定好上面的圖片地址後
WebControl的呈現
WebControl的呈現分為三步
注意的就是通常我們要對外圍的標簽進行控制時我們不會去重寫RenderBeginTag方法
另外WebControl提供了AddAttributeToRender方法來添加控件的屬性
我們用WebControl來實現上面的PicShow控件
public class PictureWeb : WebControl
{
protected override HtmlTextWriterTag TagKey
{
get
{
return HtmlTextWriterTag
}
}
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base
writer
writer
writer
}
protected override void RenderContents(HtmlTextWriter writer)
{
writer
writer
writer
writer
writer
}
}
在上面的代碼中我們首先要創建div標簽
CompositeControl的呈現
因為CompositeControl繼承於WebControl所以也有屬性TagKey來決定開始的標簽
From:http://tw.wingwit.com/Article/program/net/201311/11909.html