首页 > 编程 > .NET > 正文

ASP.NET FORUMS换肤流程

2024-07-10 12:57:32
字体:
来源:转载
供稿:网友
换肤的大至流程如下:
以skin-displayuserwelcome.ascx为例(这个是是否登陆状态显示)
1、view-forumgroupview.ascx文件引入aspnetforums.controls别名为forums
2、在希望出现“是否登陆状态”显示的地方使用使用
aspnetforums.controls.displayuserwelcome
3、在displayuserwelcome类中要做
a、设定皮肤的名称skinfilename
b、重写initializeskin(control skin)函数,用于实现皮肤上的控件
c、如果与skinnedforumwebcontrol类的createchildcontrols()进行的操作有所区别,还需要
重写createchildcontrols(),不过可以只写出区别部分,然后用base调用。
d、如果控件存在事件,还需要编写事件

4、在皮肤中需要设定控件显示的布局,控件名称应该与displayuserwelcome类中实现的控件名称相同

在换肤过程中skinnedforumwebcontrol类是至关重要的一个类,他通过实现inamingcontainer接口来区分
控件,通过重写createchildcontrols()来复合控件。
注明:createchildcontrols()在默认情况下会被onprerender()调用,也会在findcontrol()调用
onprerender()/*会在页面呈现时之前会调用*/
findcontrol()/*查找某一控件*/
目前我在aspnetforums只发现了三种类别的皮肤,
1、masterpage.ascx为代表的总框架皮肤
2、view-forumgroupview.ascx为代表的皮肤容器
3、skin-displayuserwelcome.ascx为代表的功能皮肤

那么如果你想改变一页面中某一个块的位置,那么你应该去修改皮肤容器,如果要改变的是某一块内部的布局则需要修改功能皮肤

在default.aspx中大约用到了如下几个用户控件

delfault.aspx

view-forumgroupview.ascx//首页的整体布区

skin-loginsmall.ascx//登陆那一块


skin-navigationmenu.ascx//菜单
skin-banner.ascx//自定义,位置处在菜单的上方

skin-displayuserwelcome.ascx//状态
skin-displaytitle.ascx//声明
skin-statistics.ascx//统计信息

skin-whoisonline.ascx//在线信息
skin-displaylegendforum.ascx//论坛图例


masterpage.ascx

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表