• treeview 和数据源绑定


      前几天写了个ASP.NET程序,用到了treeview作为左边菜单,依据用户的角色来初始treeview,比较简单实用,所以现在总结一下,和博友们共享一下。
      首先需要一个关系数据库表结构:就这个结构


    NodeId ModualID NodeName NodeURL
    1 <null> head1 URL
    2 <null> head2 URL
    3 <null> head3 URL
    4 1 head11 URL
    5 2 head21 URL
    6 3 head31 URL

    public void inimenu(string strrole)
            
    {
                InitTree(
    this.TreeView_Menu, Appclass.TreeDataSet(strrole));            
            }

    //这里Appclass.TreeDataSet(strrole)为通过用户角色strrole来初始绑定treeview对应DataSet
    public static DataSet TreeDataSet(string Role)
    {
       
    }


    public bool InitTree(TreeView treeview, DataSet ds)
            
    {
                treeview.Nodes.Clear();
                ds.Relations.Add(
    "NodeRelation", ds.Tables[0].Columns["NodeId"], ds.Tables[0].Columns["ModualID"], false);

                
    foreach (DataRow dbRow in ds.Tables[0].Rows)
                
    {
                    
    if (dbRow.IsNull("ModualID"))
                    
    {
                        TreeNode newNode 
    = CreateNode(dbRow["NodeName"].ToString(), dbRow["NodeId"].ToString(), dbRow["NodeURL"].ToString());
                        treeview.Nodes.Add(newNode);
                        SubTree(dbRow, newNode);
                    }

                }
              
                treeview.ExpandAll();
                
    return true;
            }



      
    private void SubTree(DataRow dbRow, TreeNode node)
            
    {
                
    foreach (DataRow childRow in dbRow.GetChildRows("NodeRelation"))
                
    {
                    TreeNode childNode 
    = CreateNode(childRow["NodeName"].ToString(), childRow["NodeId"].ToString(), childRow["NodeURL"].ToString());
                    node.ChildNodes.Add(childNode);
                    SubTree(childRow, childNode);
                }

            }


            
    private TreeNode CreateNode(string text, string tag,string url)
            
    {
                TreeNode node 
    = new TreeNode();
                node.Text 
    = text;
                node.Value 
    = tag;
                node.NavigateUrl 
    = url;
                
    return node;
            }



    run ------>

    可以了,呵呵
  • 相关阅读:
    关于C语言变量初始化的两个问题的笔记
    源自StackOverflow:找到LIST中第一个降序成员,有助于对扩展方法、IEnumerable<T>、泛型的理解
    《PERL高效编程》学习笔记(1)【关于裸字处理】
    C#出题库项目的总结(2)
    遇到的浏览器兼容问题及应对方法
    春招面试小记
    关于团队成员的退出引发的一些回忆及感悟
    C#出题库项目的总结(1)
    写一个程序,分析一个文本文件(英文文章)中各个词出现的频率,并且把频率最高的10个词打印出来
    重定向和管道符
  • 原文地址:https://www.cnblogs.com/tianqing/p/1101644.html
Copyright © 2020-2023  润新知