zoukankan      html  css  js  c++  java
  • c#,winform,webform,treeview,无限级自动生成 Virus



     

    16 AuthorizeMenuInfo权限菜单表

     

    列名

    类型

    大小

    说明

    MenuID

    Int

    4

    菜单ID

    MenuName

    Varchar

    50

    菜单名称

    ParentID

    Int

    4

    为此菜单的父菜单ID如果是顶级菜单则为0

    FormName

    Varchar

    50

    为单击菜单所要显示的窗体类名如果是还有下级菜单的则不要写。

    IsModule

    Varchar

    1

    是否还有子菜单,1有,0没有

    Level

    Int

    4

    层数

    Remark

    Varchar

    200

    备注

     

     

     

     

     

     

     

     

     


    存储过程
    /*
    查询构造treeview所需信息
    */
    create
     procedure GetTreeViewAuthorize
    as
    select MenuID,MenuName,ParentID from AuthorizeMenuInfo
    go


    /*
    根据父节点ID查找子节点信息
    */
    create procedure GetAuthorizeByParentID
    @ParentID int
    as
    select * from AuthorizeMenuInfo where ParentID=@ParentID
    go


    /// <summary>
            
    /// 获取构建无限级treeview所需的菜单id,菜单名称,父菜单id
            
    /// 返回datatable
            
    /// </summary>
            
    /// <returns>无限级treeview所需datatable</returns>

            public DataTable GetTreeViewAuthorize()
            
    {
                DataTable dt 
    = new DataTable();

                SqlConnection conn 
    = new SqlConnection(connectionString);
                SqlCommand cmd 
    = new SqlCommand();
                cmd.Connection 
    = conn;
                cmd.CommandText 
    = "GetTreeViewAuthorize";
                cmd.CommandType 
    = CommandType.StoredProcedure;

                
    try
                
    {
                    conn.Open();
                    
    using (SqlDataReader reader = cmd.ExecuteReader())
                    
    {
                        
    if(reader!=null)

                            dt.Load(reader);
                       
                    }

                }

                
    catch
                
    {
                    
    throw;
                }

                
    finally
                
    {
                    conn.Close();
                }

                
    return dt;
            }

    /// <summary>
            
    /// 根据父节点ID查找子节点信息
            
    /// </summary>
            
    /// <param name="parentID">父节点ID</param>
            
    /// <returns>子节点信息</returns>

            public DataTable GetAuthorizeByParentID(int parentID)
            
    {
                DataTable dt 
    = new DataTable();

                SqlConnection conn 
    = new SqlConnection(connectionString);
                SqlCommand cmd 
    = new SqlCommand();
                cmd.Connection 
    = conn;
                cmd.CommandText 
    = "GetAuthorizeByParentID";
                cmd.Parameters.AddWithValue(
    "@ParentID", parentID);
                cmd.CommandType 
    = CommandType.StoredProcedure;

                
    try
                
    {
                    conn.Open();
                    
    using (SqlDataReader reader = cmd.ExecuteReader())
                    
    {
                        
    if (reader != null)

                            dt.Load(reader);

                    }

                }

                
    catch
                
    {
                    
    throw;
                }

                
    finally
                
    {
                    conn.Close();
                }

                
    return dt;

            }


    /// <summary>
    /// 构造权限treeview
    /// </summary>

            private void fill_tvAuthList()
            
    {
                DataTable dt 
    = new DataTable();
                BLLAuthorize bllAuthorize 
    = new BLLAuthorize();
                dt 
    = bllAuthorize.GetTreeViewAuthorize();
                DataRow[] rows 
    = dt.Select("[ParentID]=0");
                
    for(int i=0;i<rows.GetUpperBound(0);i++)
                
    {
                    TreeNode treeNode 
    = new TreeNode();
                    treeNode.Name 
    = rows[i]["MenuID"].ToString();
                    treeNode.Text 
    = rows[i]["MenuName"].ToString();
                    
                    DataRow[] rows1 
    = dt.Select("[ParentID]=" + Convert.ToInt32(rows[i]["MenuID"]));
                    
    if (rows1.GetUpperBound(0> -1)
                    
    {
                        
    foreach (DataRow row in rows1)
                        
    {
                            TreeNode node 
    = new TreeNode();
                            node.Name 
    = row["MenuID"].ToString();
                            node.Text 
    = row["MenuName"].ToString();
                            treeNode.Nodes.Add(node);
                        }

                    }

    tvAuthList.Nodes.Add(treeNode);
                }

            }

            
    private void fill_tvAuthListNode(TreeNode treeNode)
            
    {
               
    // TreeNode[]nodes=new TreeNode[];
                DataTable dt = new DataTable();
                BLLAuthorize bllAuthorize 
    = new BLLAuthorize();
                dt 
    = bllAuthorize.GetAuthorizeByParentID(Convert.ToInt32(treeNode.Name));

                
    for (int i = 0; i < dt.Rows.Count; i++)
                
    {
                    TreeNode tNode 
    = new TreeNode();
                    tNode.Name 
    = dt.Rows[i]["MenuID"].ToString();
                    tNode.Text 
    = dt.Rows[i]["MenuName"].ToString();
                    treeNode.Nodes.Add(tNode);
                }

            }

            
    private void AddSysRoleForm_Load(object sender, EventArgs e)
            
    {
                fill_tvAuthList();
            }

    【Blog】http://virusswb.cnblogs.com/

    【MSN】jorden008@hotmail.com

    【说明】转载请标明出处,谢谢

    反馈文章质量,你可以通过快速通道评论:

  • 相关阅读:
    linux服务篇
    降智比赛题解
    CF 1437 题解
    ZR 2020普转提七连测day5
    20联赛集训day11 题解
    contest5 题解
    20联赛集训day9 题解
    20联赛集训day8 题解
    contest4 题解
    20联赛集训day7 题解
  • 原文地址:https://www.cnblogs.com/virusswb/p/1233208.html
Copyright © 2011-2022 走看看