首页 > 编程 > .NET > 正文

给 ASP.NET FORUMS 换肤流程演示

2024-07-10 13:11:17
字体:
来源:转载
供稿:网友
  换肤的大至流程如下:
  
  以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//论坛图例
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表