欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

.NET自定義控件應(yīng)該如何實(shí)現(xiàn)

本篇內(nèi)容介紹了“.NET自定義控件應(yīng)該如何實(shí)現(xiàn)”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、田林網(wǎng)絡(luò)推廣、小程序開發(fā)、田林網(wǎng)絡(luò)營(yíng)銷、田林企業(yè)策劃、田林品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供田林建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:aaarwkj.com

.NET自定義控件有很多人其實(shí)不太適應(yīng)去試用,一般都是從Control來(lái)繼承,但是如果在工作中積累一定量的.NET自定義控件,對(duì)今后的工作是很有幫助的。

自己對(duì)C#與.NET的學(xué)習(xí)并不算深入,只是這段時(shí)間要用ASP.NET來(lái)做項(xiàng)目,也是出去無(wú)奈,只好好的學(xué)習(xí)了一番,學(xué)完后,感覺的確很好,加上Visual Studio的集成開發(fā)環(huán)境,這個(gè)開發(fā)的確迅速,而且容易上手,項(xiàng)目很快就要完工了,現(xiàn)在來(lái)總結(jié)點(diǎn)當(dāng)時(shí)沒顧得上總結(jié)的東西,決定深入下.NET。

在開發(fā)項(xiàng)目的時(shí)候,其實(shí)我根本就不知道怎么去做.NET自定義控件,有一個(gè)復(fù)選框級(jí)聯(lián)選擇的功能,我用的是ThreeView控件做的,當(dāng)時(shí)并不知道怎么去添加TreeView子節(jié)點(diǎn)控件的響應(yīng)事件,應(yīng)是用js+dom在客戶端添加TreeView生成html元素的事件,很麻煩也費(fèi)力,也不便維護(hù)。

所以這次深入,決定先從.NET自定義控件入手,看了一些資料,關(guān)于自定義的控件的。自己想了想如果能夠知道.net控件庫(kù)中的控件類是怎么寫的,那不更好的操縱已有的控件和更好地開發(fā)自定義控件。到網(wǎng)上找了下,就在博客園上找到了一個(gè)C#反編譯器Reflector(下載地址http://downloads.red-gate.com/reflector.zip),很好用,能夠把.NET庫(kù)給反編譯出來(lái)。

從自己的幾乎開始,先看控件部分的,按照Vs中工具箱面板中的控件順序看看,這些控件類的源代碼

***個(gè)當(dāng)然是簡(jiǎn)單的Label類了

Code  DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), ControlValueProperty("Text"), ControlBuilder(typeof(LabelControlBuilder)), DefaultProperty("Text"), ParseChildren(false), Designer("System.Web.UI.Design.WebControls.LabelDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), ToolboxData("<{0}:Label runat=\"server\" Text=\"Label\">"), AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]  public class Label : WebControl, ITextControl  {      // Methods      public Label();      internal Label(HtmlTextWriterTag tag);      protected override void AddAttributesToRender(HtmlTextWriter writer);      protected override void AddParsedSubObject(object obj);      protected override void LoadViewState(object savedState);      protected internal override void RenderContents(HtmlTextWriter writer);       // Properties      [WebCategory("Accessibility"), Themeable(false), IDReferenceProperty, TypeConverter(typeof(AssociatedControlConverter)), DefaultValue(""), WebSysDescription("Label_AssociatedControlID")]      public virtual string AssociatedControlID { get; set; }      internal bool AssociatedControlInControlTree { get; set; }      internal override bool RequiresLegacyRendering { get; }      protected override HtmlTextWriterTag TagKey { get; }      [PersistenceMode(PersistenceMode.InnerDefaultProperty), WebCategory("Appearance"), Bindable(true), DefaultValue(""), WebSysDescription("Label_Text"), Localizable(true)]      public virtual string Text { get; set; }  }

Expand Methods

這些是Label內(nèi)置成員,寫過自定義控件的朋友都知道,一般要重載Control類的Render方法,.net庫(kù)中帶的控件類,也不例外,也是要重載這個(gè)方法的
Label比較簡(jiǎn)單,我們托一個(gè)頁(yè)面可以看到其生成html為L(zhǎng)abel相當(dāng)簡(jiǎn)單的,我們可以寫這樣一個(gè)類來(lái)模擬Label類

public class MyLabel : Control  {      public MyLabel()      { }       protected override void Render(HtmlTextWriter writer)       {           writer.RenderBeginTag(HtmlTextWriterTag.Span);          writer.Write("Label");          writer.RenderEndTag();       }  }

在aspx對(duì)應(yīng)的cs文件的load方法中寫入如下代碼

protected void Page_Load(object sender, EventArgs e)  {      MyLabel ml = new MyLabel();      this.form1.Controls.Add(ml);  }

我們可以看到結(jié)果的html和.net庫(kù)中的Label(少了id,呵呵)是一樣的,當(dāng)然了,這只是一種,很簡(jiǎn)單的模仿,如果Label的其他屬性設(shè)置了,html內(nèi)容就會(huì)變化的
看上門的Label的源碼,大家并沒有看到Label中重載Render方法是吧,其實(shí)這個(gè)是在 RenderContents方法中調(diào)用了父類WebControl的Rende方法,而WebControl中實(shí)現(xiàn)了對(duì)Render方法的重載。

看看Label.RenderContents()

Code  protected internal override void RenderContents(HtmlTextWriter writer)  {      if (base.HasRenderingData())      {          base.RenderContents(writer);      }      else      {          writer.Write(this.Text);      }  }

而我們自定義控件的時(shí)候,經(jīng)常直接從Control繼承,雖然是WebControl性質(zhì)的,雖然有WebControl,但是很多就是喜歡從Control來(lái)繼承,不知道為什么,不過我并不怎么贊成。畢竟那樣從軟件設(shè)計(jì)上來(lái)看就是一種冗余吧,也許WebControl不符合很多朋友們的使用吧。

在Label中AddAttributesToRender方法實(shí)現(xiàn)了動(dòng)態(tài)添加屬性和顯示屬性。

我的學(xué)習(xí)方法就是從表面上知道好東東怎么用之后,就開始深入,了解其運(yùn)行機(jī)制、實(shí)現(xiàn)原理,那樣就可以很輕松地把整個(gè)框架系統(tǒng)的理解下來(lái),可以上下統(tǒng)一,以后做東西可以不管底層的東西,但做起來(lái)可以游刃有余。

這里有個(gè)HtmlWriterText類,估計(jì)有的朋友不知道是干啥子用的,我找了兩篇文章,不明白的朋友可以看下
http://msdn.microsoft.com/zh-cn/library/system.web.ui.htmltextwriter(VS.80).aspx
http://www.cnblogs.com/tonyqus/archive/2005/02/15/104576.html

“.NET自定義控件應(yīng)該如何實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

當(dāng)前題目:.NET自定義控件應(yīng)該如何實(shí)現(xiàn)
鏈接分享:http://aaarwkj.com/article32/iiphsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化移動(dòng)網(wǎng)站建設(shè)、做網(wǎng)站、品牌網(wǎng)站制作自適應(yīng)網(wǎng)站、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
中国一级黄片免费欧美| 日韩高清午夜片在线观看| 欧美成人精品三级一二| 国产成人短视频在线播放| 亚洲精品在线观看午夜福利| 亚洲欧美日韩老汉影院| 亚洲成人免费在线一区| 一级黄片电影中文字幕| 国产欧美日本精品视频| 亚洲码欧洲码一二三区| 国产麻豆剧传媒精品av| 亚洲日本欧美一区二区| 中文字幕乱码av一区二区| 亚洲国产精品一区二区三| 内射性感黑丝少妇av| 日本中文字幕有码专区| 十八禁真人无摭挡观看| 国产剧免费看视频网站成人| 麻豆国产av巨做国产剧情| 国产男女猛烈无遮挡网站| 小黄片免费在线播放观看| 夜夜春久久天堂亚洲精品| 天天操天天干夜夜射| 中文字幕一区二区久久综合| 国产叼嘿一区二区视频| 欧美大片黄片在线观看| 欧美成人一区二区三区八| 密臀精品国产一区二区| 午夜丁香婷婷爽少妇av| 日日狠狠久久偷偷综合色| 2004年亚洲中文字幕| 精品特色国产自在自线拍| 国产剧免费看视频网站成人| 最美是你免费视频观看| 久久精品国产亚洲av品| 日本成人午夜电影网站| 国产精精精精品欧美日韩| 18禁黄久久久一区二区三区| 日本一级黄色影视大全| 中文字幕人妻出轨一区二区| 亚洲精品在线观看第一页|