求一个无限制级的菜单???

qingYun1029 2011-07-28 10:53:13
和csdn论坛的菜单差不多吧??

无限制级的更好。。。

:-D

求数据库的设计方案及实现菜单的SQL语句。

主要是想不到SQL语句该怎么实现,所以数据不知该如何设计好。。。

谢谢!

:目前我已经找到了js的控件树,但是需要对应的SQL语句来得到动态输出的HTML,所以上面部分才是重点,谢谢。。。
...全文
307 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
一一一一 2011-08-03
  • 打赏
  • 举报
回复
zhaowentao_bc 2011-08-03
  • 打赏
  • 举报
回复
parentID
qingYun1029 2011-08-03
  • 打赏
  • 举报
回复
坑爹啊》。。。
qingYun1029 2011-08-03
  • 打赏
  • 举报
回复
oooooooooooooooo
qingYun1029 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 dongxinxi 的回复:]

http://blog.csdn.net/ws_hgo/article/details/4842026
http://blog.csdn.net/amandag/article/details/5021126
[/Quote]

谢谢了...
qingYun1029 2011-07-31
  • 打赏
  • 举报
回复
算了吧,我还是有dtree好了。。。
luoyehanfeiz 2011-07-31
  • 打赏
  • 举报
回复
这个主要是数据库设计,我是用的js动态加载树实现的无限级菜单。

n_id p_id name 分别为描述性字段。n_id为自增列。p_id为父级的n_id
1 0 财务管理
2 0 业务管理
3 1 工单结算
4 3 工单批量结算

读取的时候先读取p_id为0的顶级菜单,自己联想下吧。多的就不写了,这样就是无限级的了。是不是很简单?
qingYun1029 2011-07-31
  • 打赏
  • 举报
回复
啊非那个好难用啊,点击隐藏起来了,再点击硬是打不开。。

js有问题。。。
qingYun1029 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 qingyun1029 的回复:]

引用 13 楼 sandy945 的回复:

完整DEMO
http://topic.csdn.net/u/20091117/11/0520F3CA-10F0-4924-8743-1523A8984530.html


谢谢了!

不过发现一个错误。

将“哈啤”下面的“哈啤纯生”显示出来,当点击“啤酒”隐藏时,“哈啤纯生”没有隐藏起来。。。
[/Quote]

错误总结一下,子类隐藏起来了,但是子类的子类并没有隐藏起来。。。
qingYun1029 2011-07-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sandy945 的回复:]

完整DEMO
http://topic.csdn.net/u/20091117/11/0520F3CA-10F0-4924-8743-1523A8984530.html
[/Quote]

谢谢了!

不过发现一个错误。

将“哈啤”下面的“哈啤纯生”显示出来,当点击“啤酒”隐藏时,“哈啤纯生”没有隐藏起来。。。
子夜__ 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 qingyun1029 的回复:]

引用 10 楼 yujiexiaoyu 的回复:

引用 2 楼 wxr0323 的回复:
无限制级
就是treeview的设计就可以了啊。

我这有几个菜单 但是没有改成递归的

也是输出HTML的。你可以参考

传送门


这个不错啊。




这个没有数据库。。

有没有递归写的啊???
[/Quote]
3篇用的一个数据库。

递归自己改下呗。
cxs99999 2011-07-29
  • 打赏
  • 举报
回复

# region 绑定菜单
private void BindMenu()
{
string sql;
sql = "select cSupMenuCode,cMenuCode,cMenuName,cPathURL,iSorting,cispage from u_Menu where cMenuCode in (select cMenuCode from u_Purview where cUserCode='" + ((EPG_User)Session["user"]).UserCode + "' and cView=1) and ((cSupMenuCode like '" + (Request["id"] == null ? Session["link"] : Request["id"]) + "%' or cMenuCode='" + (Request["id"] == null ? Session["link"] : Request["id"]) + "') or (cMenuCode='1')) order by iSorting,cMenuCode";
//sql = "select cSupMenuCode,cMenuCode,cMenuName,cPathURL,iSorting,cispage from u_Menu where cMenuCode in (select cMenuCode from u_Purview where cUserCode='Admin' and cView=1) and ((cSupMenuCode like '" + (Request["id"] == null ? Session["link"] : Request["id"]) + "%' or cMenuCode='" + (Request["id"] == null ? Session["link"] : Request["id"]) + "') or (cMenuCode='1')) order by iSorting,cMenuCode";

DataTable ctbl=EPG.ExecQuerySql(sql);

string aa = "";

for (int i = 0; i < ctbl.Rows.Count; i++)
{
if ((ctbl.Rows[i]["cSupMenuCode"].ToString() == null ? "-1" : ctbl.Rows[i]["cSupMenuCode"].ToString()) == "1" || (ctbl.Rows[i]["cSupMenuCode"].ToString() == null ? "-1" : ctbl.Rows[i]["cSupMenuCode"].ToString()) == "-1")
{
aa += " d.add(" + ctbl.Rows[i]["cMenuCode"].ToString() + "," + (ctbl.Rows[i]["cSupMenuCode"] == null ? "-1" : ctbl.Rows[i]["cSupMenuCode"].ToString()) + ",'" + ctbl.Rows[i]["cMenuName"] + "','','" + ctbl.Rows[i]["cMenuName"] + "','mainFrame');";
}
else
{
aa += " d.add(" + ctbl.Rows[i]["cMenuCode"] + "," + (ctbl.Rows[i]["cSupMenuCode"] == null ? "-1" : ctbl.Rows[i]["cSupMenuCode"].ToString()) + ",'" + ctbl.Rows[i]["cMenuName"].ToString() + "','" + ctbl.Rows[i]["cPathURL"] + "?MenuCode=" + ctbl.Rows[i]["cMenuCode"].ToString() + "','" + ctbl.Rows[i]["cMenuName"].ToString() + "','mainFrame');";
}

}

string outstring = "<SCRIPT type='text/javascript'>" +
"try{" +
"d = new dTree('d');" +
"d.config.closeSameLevel = true;" +
"d.config.useStatusText = true; " + aa + "document.write(d);d.closeAll();" +
"}catch(e){;}";
outstring += "</SCRIPT>";
this.LiteralMenu.Text = outstring;
}
# endregion

不知道楼主用的JS 是不是和我一样的
qingYun1029 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yujiexiaoyu 的回复:]

引用 2 楼 wxr0323 的回复:
无限制级
就是treeview的设计就可以了啊。

我这有几个菜单 但是没有改成递归的

也是输出HTML的。你可以参考

传送门


这个不错啊。
[/Quote]



这个没有数据库。。

有没有递归写的啊???
Yujiexiaoyu 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]
无限制级
就是treeview的设计就可以了啊。

我这有几个菜单 但是没有改成递归的

也是输出HTML的。你可以参考

传送门
[/Quote]


这个不错啊。
ASPNETCHENGXU 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dzynihao 的回复:]

引用 3 楼 sckjlirui 的回复:
这个可以考虑在一张表中,加上一个 ParentID(上级菜单ID) 应该就好实现了,思路应该是这样..


这个想法不错,不过,我不知道怎么做??用sql语句该怎么写!
[/Quote]

直接把你数据想要的数据select出来就行了,不需要什么特殊的sql语句
小阳 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sckjlirui 的回复:]
这个可以考虑在一张表中,加上一个 ParentID(上级菜单ID) 应该就好实现了,思路应该是这样..
[/Quote]

这个想法不错,不过,我不知道怎么做??用sql语句该怎么写!
ASPNETCHENGXU 2011-07-29
  • 打赏
  • 举报
回复
最简单的表设计就是:

id name pid(上级id)
取出数据后,在生成dtree需要的js脚本,dtree就会自动生成树形目录
qingYun1029 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 andrewsway 的回复:]

网上搜一下dtree
[/Quote]

谢谢你了。。。
加载更多回复(12)

62,054

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧