乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 動態(tài)加載用戶控件的組件!(三)

       素行 2007-03-17
         上一篇文章寫到動態(tài)加載用戶控件的簡單應(yīng)用

          頁面是用來瀏覽信息的!但是更重要的是和用戶交互,根據(jù)不同的需求提供不同的內(nèi)容服務(wù),這是一種服務(wù)或是一種更貼近用戶的人性化。(又在胡言亂語了!^_^

      動態(tài)加載葉面,根據(jù)不同的用戶權(quán)限加載不懂的內(nèi)容服務(wù)。根據(jù)用戶的相應(yīng)加載相應(yīng)的內(nèi)容服務(wù)。

      還有另外一個應(yīng)用就是做到頁面與代碼的分離。在vs2003里,一般ascxaspx文件,在剛建立的時候都直接跟一個cs文件關(guān)聯(lián)。那么我們在寫程序的時候就不能分開來做。作葉面和寫后臺代碼的不能分開。為了能夠做到作業(yè)面與作后臺代碼的能完全分開來,我們可以把后臺的所有代碼當作一個組件來做就可以了!這樣一個不用跟cs文件關(guān)聯(lián)的aspx葉面文件直接引用一個組件就可以了!那么組件可以加載不同的ascx文件最后組成一個完整的葉面。就這樣一個項目的開發(fā)就像個機車制造廠一樣組裝不同的零件就有輛車出來了。軟件也可以拿來組裝,零件我們也可以訂制,最后整體就可以出來了?。ǔ3?磩e人的文章的時候怎么就覺得廢話那么多,原來發(fā)現(xiàn)我廢話也不少!^_^

      好!讓我們step by step ,就從不需要關(guān)聯(lián)cs文件的aspx葉面開始吧?。ㄔ?/span>vs2005里,我新建aspx葉面的時候就直接沒有cs文件關(guān)聯(lián)。但是直接有個不完整類型隱藏起來了。怎么用基類就成為問題了!隱藏部分應(yīng)該是繼承了Page了!那么根據(jù)單繼承的原則我們是不能在繼承別的類型的了。這個問題有待研究。)

      根據(jù)aspx葉面運行原理。葉面要跟服務(wù)端交互必須通過一個run at serverform標簽才能行得通。因此我不要先來寫個form組件,那么form就應(yīng)該是個容器的形勢來承載葉面所有要與服務(wù)端交互的元素,(容器太重要了,namespace也可以看作容器,只不過是不能放東西而已,是虛擬的容器)

      1、做form容器組建:繼承繼承他就行了,注意一點就是唯一ID的問題。自己繼承的可能該改變了ID,那么回傳的時候就找不到了啊。切記!當然render葉面的時候是通過遍歷所有form容器內(nèi)所有的組件來一個個render出來。所以要改UniqueID。

      示例一下:

      using System;

      using System.Web.UI;

      using System.Web.UI.WebControls;

      using System.ComponentModel;

       

      namespace Region.Controls {

         

          public class MyForm : System.Web.UI.HtmlControls.HtmlForm {

       

                  public override string UniqueID {

                  get {

                      if (this.NoNameContainer && this.NamingContainer != this.Page ) {

                          return base.UniqueID.Substring(base.UniqueID.LastIndexOf(":")+1);

                      } else {

                          return base.UniqueID;

                      }

                  }

              }

       

              protected override void RenderAttributes(HtmlTextWriter writer) {

                  this. NoNameContainer = true;

                  base.RenderAttributes (writer);

                  this. NoNameContainer = false;

              }

             

              protected override void RenderChildren(HtmlTextWriter writer) {

                  this. NoNameContainer = true;

                  base.RenderChildren (writer);

                  this. NoNameContainer = false;

              }

       

              private Boolean NoNameContainer = false;

          }

      }

       

       

       

      未完(持續(xù))

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多