Asp.Net TreeView问题

allen0118 2013-02-24 11:53:41
我数据库里面有一张表是保存的菜单信息,其实很简单,就是一个菜单组和子菜单,绑定方式如下:

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;
using AGV.BLL;
using System.Drawing;
using System.Net;

public partial class left : System.Web.UI.Page
{
DataTable dt_Role = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string cookies_User = Request.Cookies["USER_COOKIE"]["UserName"];
dt_Role = new sys_SetRoleManager().GetUserRoleByUserID(cookies_User);
DataTable newdt = new DataTable();
newdt = dt_Role.Clone();
newdt = dt_Role.DefaultView.ToTable(true, "MenuGroupName");

tvMenu.ShowLines = true;
foreach (DataRow i in newdt.Rows)
{
TreeNode leveNode1 = new TreeNode();
leveNode1.Text = i["MenuGroupName"].ToString();
leveNode1.ImageUrl = "~/Images/TreeViewPic/web2.png";
leveNode1.Expanded = false;
leveNode1.SelectAction = TreeNodeSelectAction.Expand;
tvMenu.Nodes.Add(leveNode1);

}


for (int i = 0; i < tvMenu.Nodes.Count; i++)
{
for (int j = 0; j < dt_Role.Rows.Count; j++)
{
if (tvMenu.Nodes[i].Text.Trim() == dt_Role.Rows[j]["MenuGroupName"].ToString())
{
TreeNode tn = new TreeNode();
tn.Text = dt_Role.Rows[j]["FunctionName"].ToString();
tn.NavigateUrl = dt_Role.Rows[j]["FrmUrl"].ToString();
tn.ImageUrl = "~/Images/TreeViewPic/Foote.png";
tvMenu.Nodes[i].ChildNodes.Add(tn);
}
}

}
}
}
}


效果是这样的:


现在有一个问题,就是我想要获取TreeView节点的值的时候发现父节点的Value属性是绑定的数据库中的“Name”字段,而子节点绑定的确实数据库中的“ID”字段,这是怎么回事?



如下图,我想要的是父节点和子节点得到的都是ID,
父节点的值:

子节点的值:


...全文
168 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
allen0118 2013-02-27
  • 打赏
  • 举报
回复
我将主菜单和子菜单的数据源分开了,解决了问题,还是数据处理的时候出错了。
wyumening 2013-02-25
  • 打赏
  • 举报
回复
直接指定父节点的value值 levelNode1.Value = ..... 这样行不行?
allen0118 2013-02-24
  • 打赏
  • 举报
回复
引用 1 楼 wyumening 的回复:
绑定父节点的代码是不是这些? C# code?1foreach (DataRow i in newdt.Rows) { TreeNode leveNode1 = new TreeNode(); leveNode1.Text = i["MenuGroupName"].ToString(……
对,foreach里面的代码就是绑定的父节点。
wyumening 2013-02-24
  • 打赏
  • 举报
回复
绑定父节点的代码是不是这些?
foreach (DataRow i in newdt.Rows)             {                 TreeNode leveNode1 = new TreeNode();                 leveNode1.Text = i["MenuGroupName"].ToString();                 leveNode1.ImageUrl = "~/Images/TreeViewPic/web2.png";                 leveNode1.Expanded = false;                 leveNode1.SelectAction = TreeNodeSelectAction.Expand;                                 tvMenu.Nodes.Add(leveNode1);                               }    
如果是的话,直接指定父节点的value值 levelNode1.Value = .....

62,041

社区成员

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

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

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

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