给Asp.Net Forums的后台管理菜单做一个树形外衣
2005-12-09 20:38
609 查看
今天上班的时候需要用到TreeView,突发奇想能不能给Asp.Net Forum的后台管理做一个树形的管理菜单呢?呵呵~~~,建议大家边听Metallica边写代码,比较有灵感哦..
第一步:建表如下
其他字段不用说了,其中HotDegree是一个记录该菜单的点击次数的字段,TM Messager不是新增加了一个热度吗?我们也加一个。Expanded字段设定该节点是否默认展开。然后增加几个存储过程。另外需要在表中增加一条默认的数据,不增加应该也可以的,在查询分析器中运行以下SQL代码,在项目的存储过程中作为存储过程加入后在Vs中运行也是一样的:
1 SET IDENTITY_INSERT ManageMenu ON
5 print '创建Menu默认数据'
6 IF EXISTS (SELECT * FROM ManageMenu WHERE NodeParentID = 0)
7 DELETE ManageMenu WHERE NodeParentID = 0
8
9 INSERT INTO
ManageMenu
(
MenuNodeID,NodeParentID,NodeText,LinkPath,HotDegree,ExPanded
)
VALUES
(
0,-1,'top','#',0,0
)
SET IDENTITY_INSERT ManageMenu OFF
--如果是在Vs中运行的化把GO去掉
GO
第二步:在Components/Components下增加Menu.cs如下:
1public class Menu
2public class Menus
public static Components.Menu PopulateMenu(IDataReader reader)
2 public abstract ArrayList GetParentNodes();
public abstract ArrayList GetChildNodes(int childnodeid);
public abstract int CreateUpdateDeleteMenu(Menu menu,DataProviderAction action);
第四步:在SqlDataProvider项目中的SqlDataProvider.cs中重写以上方法,这里再不赘述了。
第五步:在Web项目中增加ViewManageMenu.ascx控件,并引用IE WebControls控件
第六步:在Controls项目中增加ManageMenu.cs,大致分以下几部分:
1.装载皮肤样式,写Asp.Net Forums换肤的文章很多,大家可以参考,如果没有注意到那么可以到这里去看看
http://ode.cnblogs.com/archive/2005/11/06/270262.html
2.创建单个节点,写的比较乱,将就看吧,呵呵
1 private TreeViewNode CreateNode(string text,string linkpath,bool expanded)
9 private void PopulateSubTree(Components.Menu menu, TreeViewNode node)
ArrayList menus;
TreeViewNode treeviewnode;
menus = Menus.GetParentNode();
foreach(AnalyseOde.Components.Menu menu in menus)
{
treeviewnode = CreateNode(menu.Text,menu.LinkPath,menu.ExPanded);
treeview.Nodes.Add(treeviewnode);
PopulateSubTree(menu, treeviewnode);
if(menu.ParentID == -1)
{
break;
}
}
5.OK了。
第七步:把ViewManageMenu.ascx放入AdminMasterPage.ascx,完工。
这样做没有什么好处,只是一个小尝试罢了。
因为这些东西不是写在Asp.Net Forum中的,所以代码就无法提供了,还望谅解。
第一步:建表如下
MenuNodeID | ParentNodeID | NodeText | LinkFile | HotDegree | Expanded |
Int4autoseed | int | nVarChar | nVarChar | Int | bit |
1 SET IDENTITY_INSERT ManageMenu ON
5 print '创建Menu默认数据'
6 IF EXISTS (SELECT * FROM ManageMenu WHERE NodeParentID = 0)
7 DELETE ManageMenu WHERE NodeParentID = 0
8
9 INSERT INTO
ManageMenu
(
MenuNodeID,NodeParentID,NodeText,LinkPath,HotDegree,ExPanded
)
VALUES
(
0,-1,'top','#',0,0
)
SET IDENTITY_INSERT ManageMenu OFF
--如果是在Vs中运行的化把GO去掉
GO
第二步:在Components/Components下增加Menu.cs如下:
1public class Menu
2public class Menus
public static Components.Menu PopulateMenu(IDataReader reader)
2 public abstract ArrayList GetParentNodes();
public abstract ArrayList GetChildNodes(int childnodeid);
public abstract int CreateUpdateDeleteMenu(Menu menu,DataProviderAction action);
第四步:在SqlDataProvider项目中的SqlDataProvider.cs中重写以上方法,这里再不赘述了。
第五步:在Web项目中增加ViewManageMenu.ascx控件,并引用IE WebControls控件
第六步:在Controls项目中增加ManageMenu.cs,大致分以下几部分:
1.装载皮肤样式,写Asp.Net Forums换肤的文章很多,大家可以参考,如果没有注意到那么可以到这里去看看
http://ode.cnblogs.com/archive/2005/11/06/270262.html
2.创建单个节点,写的比较乱,将就看吧,呵呵
1 private TreeViewNode CreateNode(string text,string linkpath,bool expanded)
9 private void PopulateSubTree(Components.Menu menu, TreeViewNode node)
ArrayList menus;
TreeViewNode treeviewnode;
menus = Menus.GetParentNode();
foreach(AnalyseOde.Components.Menu menu in menus)
{
treeviewnode = CreateNode(menu.Text,menu.LinkPath,menu.ExPanded);
treeview.Nodes.Add(treeviewnode);
PopulateSubTree(menu, treeviewnode);
if(menu.ParentID == -1)
{
break;
}
}
5.OK了。
第七步:把ViewManageMenu.ascx放入AdminMasterPage.ascx,完工。
这样做没有什么好处,只是一个小尝试罢了。
因为这些东西不是写在Asp.Net Forum中的,所以代码就无法提供了,还望谅解。
相关文章推荐
- 自己写的一个简单的 Asp.net 后台管理框架
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥
- 分享一个基于asp.net后台的QQ第三方接口demo
- ASP.NET MVC+LINQ开发一个图书销售站点(10):作者管理
- 在asp.net里怎么根据用户权限来生成树形菜单
- ASP.NET后台手动调用POST提交并获取返回值,用于短信平台接口//这是一个短信平台的后台提交功能
- drp用户管理完成后,asp.net与java的一个简单比较
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之登录窗口调试
- Extjs + ASP.net 后台管理框架
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能
- 常用的在数据库中建立无限级树形菜单的asp.net代码
- ASP.NET MVC搭建项目后台UI框架—2、菜单特效
- 常用的在数据库中建立无限级树形菜单的asp.net代码
- ASP.NET开源框架之HIPPO技术内幕(六)--后台管理与前台展示
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler
- ASP.NET Zero--10.一个例子(3)商品分类管理-新建
- asp.net中按钮的后台点击事件怎样才能打开一个对话框?(ext中的window)
- Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块
- ASP.NET 菜单级别权限管理ORACLE数据库实现分析