我们在做项目的时候经常会遇到要做后台管理界面,一般都是用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源代码下载
/Files/HeroBeast/NavMenu.rar
欢迎大家加入 "小强控件园" ,有更多惊喜等着你,进入小强控件园
工欲善其事,必先利其器
小强控件园,MVP技术后盾!赶快加入!