首页 新闻 赞助 找找看

Asp.Net TreeView问题

0
悬赏园豆:20 [已解决问题] 解决于 2013-02-27 18:42

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

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,
父节点的值:

子节点的值:

无 影的主页 无 影 | 初学一级 | 园豆:59
提问于:2013-02-24 15:13
< >
分享
最佳答案
0
TreeNode有Text和Value两个属性,请明确指定Value属性对应的值即可
收获园豆:10
陈希章 | 老鸟四级 |园豆:2538 | 2013-02-24 18:01

父节点的Text属性和Value属性都是一样的,但是子节点的Text属性和Value属性就不一样。

无 影 | 园豆:59 (初学一级) | 2013-02-24 18:36
其他回答(1)
0

楼上正解,要是你的不一样,可能是循环赋值的时候出左了。你可以调试下啊。

收获园豆:10
i贾小林 | 园豆:211 (菜鸟二级) | 2013-02-25 08:54

我后来重新从数据库获取了一张Table,主菜单和数据源和子菜单的数据源分开的,就没问题了。

支持(0) 反对(0) 无 影 | 园豆:59 (初学一级) | 2013-02-27 18:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册