換膚的大至流程如下:
以Skin-DisplayUserWelcome.ascx為例(這個是是否登陸狀態(tài)顯示)
1、View-ForumGroupView.ascx文件引入AspNetForums.Controls別名為Forums
2、在希望出現(xiàn)“是否登陸狀態(tài)”顯示的地方使用使用
AspNetForums.Controls.DisplayUserWelcome
3、在DisplayUserWelcome類中要做
A、設定皮膚的名稱skinFilename
B、重寫InitializeSkin(Control skin)函數(shù),用于實現(xiàn)皮膚上的控件
C、如果與SkinnedForumWebControl類的CreateChildControls()進行的操作有所區(qū)別,還需要
重寫CreateChildControls(),不過可以只寫出區(qū)別部分,然后用base調(diào)用。
D、如果控件存在事件,還需要編寫事件
4、在皮膚中需要設定控件顯示的布局,控件名稱應該與DisplayUserWelcome類中實現(xiàn)的控件名稱相同
在換膚過程中SkinnedForumWebControl類是至關重要的一個類,他通過實現(xiàn)INamingContainer接口來區(qū)分
控件,通過重寫CreateChildControls()來復合控件。
注明:CreateChildControls()在默認情況下會被OnPreRender()調(diào)用,也會在FindControl()調(diào)用
OnPreRender()/*會在頁面呈現(xiàn)時之前會調(diào)用*/
FindControl()/*查找某一控件*/
目前我在AspNetForums只發(fā)現(xiàn)了三種類別的皮膚,
1、MasterPage.ascx為代表的總框架皮膚
2、View-ForumGroupView.ascx為代表的皮膚容器
3、Skin-DisplayUserWelcome.ascx為代表的功能皮膚
那么如果你想改變一頁面中某一個塊的位置,那么你應該去修改皮膚容器,如果要改變的是某一塊內(nèi)部的布局則需要修改功能皮膚
在default.aspx中大約用到了如下幾個用戶控件
delfault.aspx
View-ForumGroupView.ascx//首頁的整體布區(qū)
Skin-LoginSmall.ascx//登陸那一塊
Skin-NavigationMenu.ascx//菜單
Skin-Banner.ascx//自定義,位置處在菜單的上方
Skin-DisplayUserWelcome.ascx//狀態(tài)
Skin-DisplayTitle.ascx//聲明
Skin-Statistics.ascx//統(tǒng)計信息
Skin-WhoIsOnline.ascx//在線信息
Skin-DisplayLegendForum.ascx//論壇圖例
MasterPage.
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。