日期:2014-05-18  浏览次数:20705 次

大家帮帮忙treeview的问题?
我在treeview是手动添加了根节点aa,bb,cc,dd它们都没有子节点,
就是aa 这样的,但是我想要的是aa()
  bb bb()
  cc cc()
  dd dd()  

我有一个表tbinfo里面有两个字段id,tname,这个表是用来存储我要添加的记录,
如:id tname 就是这样的,现在treeview里已经添加好节点了,就是从数据库里查出他们的个数,若数据库里没有
  1 aa
  2 aa
  3 bb
  4 cc

就像以上这个表,那么在treeview里就应该是aa(2) 要的就是这样的结果!
  bb(1)
  cc(1)
  dd(0)  
 

------解决方案--------------------
如果你手工绑定aa,然后根据aa来查询它的个数的话,效率会很低,如果你的节点很多的话,加载会很缓慢,因为每个节点都要做一次数据库查询
------解决方案--------------------
C# code


 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CreateTreeNode();
        }
    }

  
    public void CreateTreeNode()
    {
        TreeNode mainNode = new TreeNode();
        mainNode.Text = "所有";

        IList<string> list = new List<string>(){"aa","bb","cc"};
        foreach (string value in list)
        {
            string aaCount =GetTable(string.Format(@"select .... where  tname='{0}'",value)).Rows[0][0].ToString();
            TreeNode node = new TreeNode();
            node.Text = value + "(" + aaCount + ")";
            mainNode.ChildNodes.Add(node);
        }
        TreeView1.ShowLines = true;
        TreeView1.Nodes.Add(mainNode);
    }
    public DataTable GetTable(string str)
    {
        //自己实现
    }