|
(實在很懶,關(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
我么在寫個同樣的組件叫ebutton 根Abutton一樣。 把事件改為bt.Text = "心雨樓!?。。。。。?!"; 讓我們來看看無代碼的aspx是什么樣子的!
運行之后就這個樣子: 分別點擊之后就這樣:
相同的頁面做不同的事情。 |
|
|
來自: 素行 > 《網(wǎng)站開發(fā)》