1.控件开发背景
我们在做项目的时候经常会遇到要做后台管理界面,一般都是用Fram框架来实现,框架的左面是一个导航栏,关键就是这个导航栏,是用TreeView控件,还是自己写JS脚本,用TreeView吧影响美观,写JS吧,太多了,麻烦。为了不用TreeView又省去写JS的麻烦,所以就有了
把以前写好的JS脚本封装成Asp.Net 服务器控件的想法。
2.实现效果
3. 属性
CssFilePath :是如果用户不喜欢内置的CSS样式,可以选择自己喜欢的CSS样式来满足自己的需求。
ListItems :是一个集合属性,其内部也包含一个集合属性。
4.设计时支持
增加设计时支持 , 主要是重写下面的方法:
5.项目工程结构如下
6.小结
本控件主要有几个重点。
(a).TypeConverter的实现。
(b). Editor的实现。
(c). NavMenuDesigner的实现.
7源代码下载
下载
我们在做项目的时候经常会遇到要做后台管理界面,一般都是用Fram框架来实现,框架的左面是一个导航栏,关键就是这个导航栏,是用TreeView控件,还是自己写JS脚本,用TreeView吧影响美观,写JS吧,太多了,麻烦。为了不用TreeView又省去写JS的麻烦,所以就有了
把以前写好的JS脚本封装成Asp.Net 服务器控件的想法。
2.实现效果
3. 属性
CssFilePath :是如果用户不喜欢内置的CSS样式,可以选择自己喜欢的CSS样式来满足自己的需求。
ListItems :是一个集合属性,其内部也包含一个集合属性。
4.设计时支持
增加设计时支持 , 主要是重写下面的方法:
public
override
DesignerActionItemCollection GetSortedActionItems()
{
DesignerActionItemCollection list = new DesignerActionItemCollection();
list.Add( new DesignerActionTextItem( " 查看选择面板 " , " ShowPanel " ));
list.Add( new DesignerActionPropertyItem( " CssFilePath " , " Css文件路径: " , " NavMenu " ));
list.Add( new DesignerActionPropertyItem( " ListItems " , " ListItems: " , " NavMenu " ));
return list;
}
ListItems在设计时的界面同属性一样,如下图:
{
DesignerActionItemCollection list = new DesignerActionItemCollection();
list.Add( new DesignerActionTextItem( " 查看选择面板 " , " ShowPanel " ));
list.Add( new DesignerActionPropertyItem( " CssFilePath " , " Css文件路径: " , " NavMenu " ));
list.Add( new DesignerActionPropertyItem( " ListItems " , " ListItems: " , " NavMenu " ));
return list;
}
5.项目工程结构如下
6.小结
本控件主要有几个重点。
(a).TypeConverter的实现。
(b). Editor的实现。
(c). NavMenuDesigner的实现.
7源代码下载
下载