从数据库读出数据生成垂直可折叠菜单 求助,后台左栏可折叠菜单怎么实现?从数据库读出菜单,代码详细点,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Treeview 控件就可以了这方面的实例很多的 超轻量级 JavaScript 横向动态菜单代码http://www.nextcool.cn/article.asp?id=538 谢谢,我把建表语句弄这吧,CREATE TABLE [dbo].[YZ_MenuInfo]( [MenuID] [int] IDENTITY(1,1) NOT NULL, [MenuName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, [Url] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [FatherID] [int] NULL, [SonID] [int] NULL, CONSTRAINT [PK_YZ_MenuInfo] PRIMARY KEY CLUSTERED ( [MenuID] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]GO 用treeview,然后用递归!楼上说的对,再用下样式就好看了,也可用脚本实现 直接用个Label 从后台循环 数据库表这样设定,比如有3个字段id name parentID1 文学 -12 体育 -13 中国文学 14 欧美文学 15 篮球 26 足球 2然后就可以用递归绑TreeView了 /// <summary> /// 添加TreeView /// </summary> void addTreeView() { DataView dv = new DataView(GetSet().Tables[0]); AddTree(dv, -1, (TreeNode)null); } /// <summary> /// 递归添加节点 /// </summary> /// <param name="dvTree"></param> /// <param name="id"></param> /// <param name="pNode"></param> void AddTree(DataView dvTree, int id, TreeNode pNode) { //过滤ParentID,得到当前的所有子节点 string rowFilter = "ParentID=" + id; dvTree.RowFilter = rowFilter; foreach (DataRowView Row in dvTree) { TreeNode Node = new TreeNode(); if (pNode == null) { //添加根节点 Node.Text = Row["name"].ToString(); Node.Value = Row["id"].ToString(); TreeView1.Nodes.Add(Node); Node.Expanded = false; AddTree(dvTree, int.Parse(Row["id"].ToString()), Node); //再次递归 } else { //添加当前节点的子节点 Node.Text = Row["name"].ToString(); Node.Value = Row["id"].ToString(); pNode.ChildNodes.Add(Node); Node.Expanded = true; AddTree(dvTree, int.Parse(Row["id"].ToString()), Node); //再次递归 } } }一个表就可以搞定 怎样删除上传到服务器中的文件 Recordset对数据库的操作,安全性问题 如何实现论坛的积分帖功能 高手来,写EXCEL速度慢的问题 ajaxpro乱码问题. 如何重命名datagrild控件中自定义控件的名称. 如何统计网站的访问量? 应用程序中的服务器错误 請問知道了字段的名稱.怎麼取這個字段的值呢??? 页面进入到httphandler之后出来时空白页面 如何处理一张aspx页面中的两个post 关于asp.net判断引用dll文件
这方面的实例很多的
http://www.nextcool.cn/article.asp?id=538
CREATE TABLE [dbo].[YZ_MenuInfo](
[MenuID] [int] IDENTITY(1,1) NOT NULL,
[MenuName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[Url] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[FatherID] [int] NULL,
[SonID] [int] NULL,
CONSTRAINT [PK_YZ_MenuInfo] PRIMARY KEY CLUSTERED
(
[MenuID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]GO
id name parentID
1 文学 -1
2 体育 -1
3 中国文学 1
4 欧美文学 1
5 篮球 2
6 足球 2
然后就可以用递归绑TreeView了
/// <summary>
/// 添加TreeView
/// </summary>
void addTreeView()
{
DataView dv = new DataView(GetSet().Tables[0]);
AddTree(dv, -1, (TreeNode)null);
} /// <summary>
/// 递归添加节点
/// </summary>
/// <param name="dvTree"></param>
/// <param name="id"></param>
/// <param name="pNode"></param>
void AddTree(DataView dvTree, int id, TreeNode pNode)
{ //过滤ParentID,得到当前的所有子节点
string rowFilter = "ParentID=" + id;
dvTree.RowFilter = rowFilter;
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{ //添加根节点
Node.Text = Row["name"].ToString(); Node.Value = Row["id"].ToString();
TreeView1.Nodes.Add(Node);
Node.Expanded = false;
AddTree(dvTree, int.Parse(Row["id"].ToString()), Node); //再次递归
}
else
{ //添加当前节点的子节点
Node.Text = Row["name"].ToString(); Node.Value = Row["id"].ToString();
pNode.ChildNodes.Add(Node);
Node.Expanded = true;
AddTree(dvTree, int.Parse(Row["id"].ToString()), Node); //再次递归
}
}
}
一个表就可以搞定