成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET服務(wù)器控件之RenderContents簡介

開發(fā) 后端
ASP.NET服務(wù)器控件之RenderContents是什么呢本文就向你介紹ASP.NET服務(wù)器控件之RenderContents的基本知識,所包含的屬性的各個特點等。

ASP.NET服務(wù)器控件之RenderContents的介紹:

本文重點介紹另一種實現(xiàn)控件呈現(xiàn)的常用方法--使用WebControl類的RenderContents方法實現(xiàn)控件呈現(xiàn)。

基礎(chǔ)知識

就ASP.NET服務(wù)器控件而言只存在兩種情況:一種是具有外觀可視化元素的控件,還有一種是不具有外觀可視化元素的控件。如果需要開發(fā)的服務(wù)器控件包含可視化元素,那么多數(shù)情況下,建議開發(fā)人員創(chuàng)建繼承自System.Web.UI.WebControls.WebControl基類的控件類。這種做法的主要原因是基于便捷性考慮。因為,WebControl類可提供服務(wù)器控件的部分與外觀有關(guān)的公共屬性、方法和事件等。通過該類定義的屬性,可以控制服務(wù)器控件的外觀和行為。例如,使用BackColor和ForeColor屬性,可以分別控制服務(wù)器控件的背景色和前景顏色;在可以顯示邊框的控件上,可以通過設(shè)置BorderWidth、BorderStyle和BorderColor屬性,控制邊框?qū)挾?、邊框樣式和邊框顏色;服?wù)器控件的大小可以通過Height和Width屬性來指定等等。如果控件基類是Control類,那么實現(xiàn)這些類似內(nèi)容則非常繁瑣。

在使用WebControl基類實現(xiàn)ASP.NET服務(wù)器控件呈現(xiàn)的過程中,必然要使用該類所提供的屬性和方法等成員對象。這是讀者需要重點掌握的內(nèi)容。另外,對于該基類的構(gòu)造函數(shù)也是不容忽視的。下面首先從WebControl的構(gòu)造函數(shù)開始入手進(jìn)行講解,隨后將說明常見的成員對象。

WebControl類包括三個構(gòu)造函數(shù),它們都用于初始化WebControl類的新實例,然而它們之間還存在一些細(xì)小的差異。

◆protected WebControl ()

該構(gòu)造函數(shù)用于初始化表示Span HTML元素的WebControl類的新實例。通常情況下,開發(fā)人員并不直接調(diào)用此構(gòu)造函數(shù)。相反,它通常由派生類的構(gòu)造函數(shù)調(diào)用以將TagKey屬性初始化為Span枚舉值。在隨后的示例中,將重寫TagKey屬性,從而調(diào)用此構(gòu)造函數(shù)。

◆public WebControl (HtmlTextWriterTag tag)

開發(fā)人員可使用此構(gòu)造函數(shù)創(chuàng)建并初始化使用指定的System.Web.UI.HtmlTextWriterTag值的WebControl類的新實例。其中的參數(shù)tag表示HtmlTextWriterTag枚舉值之一。可能讀者對于HtmlTextWriterTag還不太熟悉。它是一個枚舉類型,其枚舉值多為HTML標(biāo)記,例如,A、B、Bold、Button等等。

◆protected WebControl (string tag)

使用此構(gòu)造函數(shù)可創(chuàng)建并初始化使用指定的HTML標(biāo)記的WebControl類的新實例。其中參數(shù)tag表示HTML標(biāo)記。當(dāng)使用該構(gòu)造函數(shù)時一定要注意:不能直接調(diào)用此構(gòu)造函數(shù)。相反,它通常由派生類的構(gòu)造函數(shù)調(diào)用以初始化TagKey和TagName屬性。

在了解了WebControl類的構(gòu)造函數(shù)之后,讀者還必須了解WebControl類的一些常用屬性和方法。下面列舉了這些常用成員對象,它們對于實現(xiàn)ASP.NET服務(wù)器控件呈現(xiàn)有著重要意義。

(1)Attributes屬性

該屬性用于獲取與控件的屬性不對應(yīng)的任意特性(只用于呈現(xiàn))的集合,其屬性類型為AttributeCollection。

(2)ControlStyle屬性

該屬性用于獲取服務(wù)器控件的樣式,它是Style類型。ControlStyle屬性封裝WebControl類的所有外觀屬性,如BorderColor和Font。

(3)TagKey屬性

該屬性用于獲取與此服務(wù)器控件相對應(yīng)的System.Web.UI.HtmlTextWriterTag值,其屬性類型為HtmlTextWriterTag枚舉。

(4)protected virtual void AddAttributeToRender(HtmlTextWriter writer);

該方法將需要呈現(xiàn)的HTML屬性和樣式添加到指定的System.Web.UI.HtmlTextWriter中。注意在重寫過程中,一定要調(diào)用基類中相應(yīng)的方法。

(5)public void ApplyStyle(Style s);

該方法將指定樣式的所有非空白元素復(fù)制到控件,改寫控件的所有現(xiàn)有的樣式元素。

(6)public void MergeStyle(Style s);

該方法將指定樣式的所有非空白元素復(fù)制到控件,但不改寫該控件現(xiàn)有的任何樣式元素。

(7)protected override void Render(HtmlTextWriter writer);方法

該方法重寫了Control.Render。

(8)protected virtual void RenderContents(HtmlTextWriter writer);

該方法將ASP.NET服務(wù)器控件的內(nèi)容呈現(xiàn)到指定的編寫器中。如果要在控件的標(biāo)簽中寫入文本或其他內(nèi)容,則需要重寫該方法;如果要使用默認(rèn)邏輯來呈現(xiàn)子控件,那么一定要調(diào)用基類中相應(yīng)的方法。

可能讀者已經(jīng)注意到WebControl基類中包括的兩個方法:Render和RenderContents。根據(jù)上文所介紹的內(nèi)容可知,Control基類中包括Render方法。由于WebControl類繼承自Control類,因此,WebControl類中包含Render方法是無可非議的。然而,WebControl類中卻有一個RenderContents方法,并且該方法與Render方法在功能、參數(shù)等方面都非常相似。那么在呈現(xiàn)控件過程中到底應(yīng)該使用哪一個呢?

實際上,在通常情況下,如果服務(wù)器控件自WebControl基類派生,那么其中的Render方法很少使用,而主要使用RenderContents方法實現(xiàn)控件呈現(xiàn)。為了說明其中的原因,我們必須了解WebControl基類中Render方法的實現(xiàn)邏輯。

在WebControl基類中的Render方法的實現(xiàn)示意性代碼如下所示:

  1. protected override void Render(HtmlTextWriter output)  
  2. {  
  3.  RenderBeginTag(output);  
  4.  RenderContents(output);  
  5.  RenderEndTag(output);  
  6. }  

在WebControl基類中的RenderBeginTag方法的實現(xiàn)示意性代碼如下:

  1. public virtual void RenderBeginTag(HtmlTextWriter output)  
  2. {  
  3.  AddAttributesToRender(output);   
  4.  HtmlTextWriterTag tagKey = TagKey;  
  5.  if(tagKey != HtmlTextWriterTag.Unknown)  
  6.  {  
  7. output.RenderBeginTag(tagKey);   
  8.  } else {  
  9. output.RenderBeginTag(this.TagName);  
  10.  }  
  11. }  

在WebControl基類中的RenderContents方法的實現(xiàn)示意性代碼如下:

  1. protected override void RenderContents(HtmlTextWriter output){   
  2.  //使用默認(rèn)邏輯來呈現(xiàn)子控件,那么一定要調(diào)用基類中的方法。   
  3.  base.Render(output);  
  4. }  

分析以上代碼可以得出以下結(jié)論:

一、為了在由WebControl派生的類中實現(xiàn)控件呈現(xiàn),必須重寫AddAttributesToRender、RenderBeginTag、RenderEndTag、RenderContents等方法中的一個或者多個,而不必重寫Render方法。

二、重寫AddAttributesToRender、RenderBeginTag、RenderEndTag、RenderContents等方法非常重要(請注意重寫這些方法的條件及注意事項),否則服務(wù)器控件可能會出現(xiàn)丟失標(biāo)簽的情況,這將嚴(yán)重影響服務(wù)器控件的呈現(xiàn)。

三、當(dāng)呈現(xiàn)ASP.NET服務(wù)器控件標(biāo)簽中的內(nèi)容時,必須重寫RenderContents方法。

上文介紹了WebControl類的一些基本知識。尤其是對于上文所列舉的示意性代碼需要重點理解。這對于實現(xiàn)控件呈現(xiàn)有著重要作用。

ASP.NET服務(wù)器控件之RenderContents的基本內(nèi)容將你介紹到這里,希望對你了解ASP.NET服務(wù)器控件之RenderContents有所幫助。

【編輯推薦】

  1. ASP.NET服務(wù)器控件Render方法的使用淺析
  2. ASP.NET服務(wù)器控件開發(fā)之實現(xiàn)事件淺析
  3. ASP.NET服務(wù)器控件之處理回傳數(shù)據(jù)淺析
  4. ASP.NET服務(wù)器控件之捕獲回傳事件淺析
  5. ASP.NET控件開發(fā)基礎(chǔ)之事件處理淺析
責(zé)任編輯:仲衡 來源: 天極開發(fā)
相關(guān)推薦

2009-08-06 14:42:54

ASP.NET服務(wù)器控

2009-08-06 15:21:45

ASP.NET控件開發(fā)RenderConte

2009-08-10 14:08:15

ASP.NET服務(wù)器控ASP.NET組件設(shè)計

2009-08-03 15:43:22

asp.net控件

2009-08-04 13:10:05

ASP.NET服務(wù)器控

2011-07-12 15:03:28

2009-08-10 14:25:33

ASP.NET服務(wù)器控

2009-08-05 17:11:51

ASP.NET控件開發(fā)ASP.NET服務(wù)器控

2009-08-04 17:18:37

2011-07-12 15:17:02

ASP.net服務(wù)器控件

2009-08-03 18:00:00

ASP.NET服務(wù)器控

2009-07-28 09:46:53

ASP.NET服務(wù)器控

2009-07-30 16:52:38

復(fù)合控件ASP.NET服務(wù)器控

2009-08-06 11:24:50

ASP.NET服務(wù)器控

2009-07-27 12:56:27

控件CheckBoxLASP.NET服務(wù)器

2009-08-04 13:39:43

ASP.NET 2.0

2009-08-04 15:13:38

2009-08-07 13:56:46

ASP.NET控件開發(fā)

2009-08-01 20:59:08

ASP.NET服務(wù)器控ASP.NET服務(wù)器ASP.NET

2009-08-01 10:07:58

ASP.NET服務(wù)器控ASP.NET
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本 欧美 国产 | 欧美一级在线 | 91精品国产91久久久久久 | 波多野吉衣久久 | 日韩手机在线看片 | 黄色毛片免费视频 | 欧美亚洲免费 | 天天天天天天操 | 久久久免费电影 | 一区二区三区精品在线视频 | 欧美精品久久久 | 日本久久www成人免 成人久久久久 | 综合第一页| 成人免费视频在线观看 | 二区在线视频 | 国产激情第一页 | 精品久久久久久亚洲精品 | 欧美区在线 | 麻豆hd | 国产精品区一区二区三 | av入口 | 久草电影网 | 午夜免费看 | 91看片网| 成人精品鲁一区一区二区 | 伊人网影院 | 在线观看av网站永久 | 欧美性久久久 | 天天看天天干 | 国产精品久久久久久久久免费软件 | 日本三级网站在线观看 | 国产乱码精品一区二区三区五月婷 | 欧美日韩国产三级 | 日韩在线观看一区二区三区 | 欧美a v在线| caoporn视频在线 | 国产乱一区二区三区视频 | 一区二区欧美在线 | 97久久精品午夜一区二区 | 黄色网址免费在线观看 | 午夜精品一区二区三区免费视频 |