我们在做项目的时候经常会遇到要做后台管理界面,一般都是用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技术后盾! 赶快加入!