Stella 知识库--使用控件

-- 系列文章与Stella Forum v2.0搭配使用效果更好 --

webcomponent里放的是系统所使用的控件,主要分三类
1.标准的自定义控件
2.继承自baseskin的皮肤控件
3.作为页面框架而存在的Container

1.标准的自定义控件
这类控件主要是用来展示一些固定的数据,比如说表情列表和样式列表,直接继承自相应的web control,然后在里面定好数据源。这样使用的时候就直接拖到用户控件里。

2.继承自baseskin的皮肤控件
这一类控件的作用就是动态的加载用户控件,在页面呈现。baseskin是所有这类控件的基类,里面包含了一些通用的功能,最主要的方法是这个
protected override void CreateChildControls()
{
//加载用户控件
Control skin=loadSkin();
//初始化用户控件
initSkin(skin);
///将控件加入集合
Controls.Add(skin);
}
具体使用的时候是由具体的子控件决定要加载哪个用户控件,比如这个:
public InfoSum()
{
this.skinFileName="InfoSum.ascx";
}
指定后,还需要重写initSkin(skin),初始化控件。
关于这个的具体分析,大家可以看我的主页上的文章“78.探索ASP.NET Forum(3)皮肤主题的更换”

3.作为页面框架而存在的Container
Container是一个具有子模版的控件,当初这样设计的目的是为了可以加载页眉和页脚,然后其它的控件放到模版里,夹在中间。
protected override void CreateChildControls()
{
this.Controls.Clear();
Header header=new Header();
this.Controls.Add(header);
//这个模版里放页面元素
StellaItem si=new StellaItem();
this.item.InstantiateIn(si);
this.Controls.Add(si);
Footer footer=new Footer();
this.Controls.Add(footer);
}
这是具体的实现。先加载页眉,然后是页面元素,最后加载页脚。
posted on 2005-05-22 21:18  Notus|南色的风  阅读(846)  评论(1编辑  收藏  举报