小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

動態(tài)加載用戶控件的組件?。ㄋ模?/span>

 素行 2007-03-17
(實在很懶,關(guān)于動態(tài)加載用戶控件的內(nèi)容實在寫也寫不完,說也說不完。關(guān)系到asp.net的一切!)

       我們要做沒有關(guān)聯(lián)cs文件的aspx葉面。其實葉面的東西并不在aspx上,而是在ascx上。Aspx所起的作用只是一個入口。對組件的引用而已,而組件就可以管理很多的ascx頁面,所謂的葉面ascx葉面也應(yīng)該是沒有關(guān)聯(lián)cs的葉面。

       所以整個系統(tǒng)所有的東西都是在組件里面,aspx是單純的訪問入口,ascx是純頁面的東西。Aspx入口調(diào)用組件,組件調(diào)用ascx頁面以及相應(yīng)客戶的交互。

       只有這樣才能做到每工與后臺的很好的分開。

       完全可以有一個團隊來開發(fā)頁面(純頁面不需要任何的cs代碼,全都是ascx),而有另一個團隊來開發(fā)組件。最后組裝成整個系統(tǒng),由aspx調(diào)用組件就可以了。

       讓我們來作個無代碼關(guān)聯(lián)的ascx葉面,葉面上有個按鈕,然后寫個組件加載這個ascx葉面,以及如何響應(yīng)這個按鈕的事件!

       (廢話一下,寫文章有時候不廢話真是很痛苦的一件事情?。。?/span>ascx葉面與處理葉面的后臺代碼分開是一件非常好的事情,不知你有沒有發(fā)現(xiàn)一個葉面有只能與一個后臺代碼文件關(guān)聯(lián),不可能有兩個類來關(guān)聯(lián)這個葉面。而用組件來加載ascx以及相應(yīng)事件,那么你就可以用同一個葉面ascx而有很多種不同的組件調(diào)用??芍赜镁痛蟠蟮?。不僅在同一個項目內(nèi)重用,而是想用就用。

       實例一下:

       作個無關(guān)聯(lián)cs文件的ascx頁面。上面有個button. Id mybutton. 當然是run at server我們才能在組件中找到他了!ascx葉面也可以是文本文件。把后綴名改為ascx就行了。

       用我前面寫的loadskin來加載吧!然后在里面處理button onclick事件就可以了。

然后在aspx中引用這個組件就行了。當然也可以在ascx中引用,都是一個效果。

       Ascx起名為a.ascx. 上面只有一個button

       也是繼承SkinnedControl

namespace Region.Controls {

   

    /// <summary>

    /// 加載用戶組件,加載不同的組件

    /// </summary>

    public class Abutton : SkinnedControl {

         Button bt;

        public Abutton() : base()

         {

base.SkinPath = "a.ascx";

         }

 

        /// <summary>

        /// 初始化組建摸板,進行必要的動態(tài)設(shè)置或更新

        /// </summary>

        override protected void InitializeSkin(Control skin) {

              bt = (Button)skin.FindControl("myButton");

              bt.Click +=new EventHandler(bt_Click);

              skin.DataBind();

        }

       

        /// <summary>

        /// 獲取組件

        /// </summary>

        public override ControlCollection Controls {

              get {

                   EnsureChildControls();

                   return base.Controls;

              }

         }

 

         private void bt_Click(object sender, EventArgs e)

         {

              bt.Text = "心雨樓";

         }

     }

}

我么在寫個同樣的組件叫ebutton Abutton一樣。

把事件改為bt.Text = "心雨樓!?。。。。。?!";

讓我們來看看無代碼的aspx是什么樣子的!

 

運行之后就這個樣子:

分別點擊之后就這樣:

 

 

相同的頁面做不同的事情。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多