C#使用TreeView加载系统应用菜单代码

C#使用TreeView加载系统应用菜单代码

    class TreeAppMenu
    {
        private DataSet ds;

        public bool LoadMenu(ref TreeView treeview)
        {
            
            string connString = GlobalInfo.CurrentDB;
            
            using (DbConnection conn = new System.Data.OleDb.OleDbConnection(connString))
            {
                DbCommand cmd = conn.CreateCommand();
                cmd.CommandText = "SELECT * FROM S_MENU";
                cmd.CommandType = CommandType.Text;
                DbDataAdapter da = new OleDbDataAdapter();
                da.SelectCommand = cmd;
                ds = new DataSet();

                try
                {
                    da.Fill(ds, "S_MENU");
                    if (ds.Tables["S_MENU"].Rows.Count >= 1)
                    {
                        string menuno = ds.Tables["S_MENU"].Rows[0]["MENU_NO"].ToString();
                        string menuname = ds.Tables["S_MENU"].Rows[0]["MENU_NM"].ToString();

                        DataView dv = new DataView();
                        dv.Table = ds.Tables["S_MENU"];
                        dv.RowFilter = "UP_MENU_NO = 'TOP'";
                        dv.Sort = "SORT_NO";
                        
                        foreach (DataRowView drv in dv)
                        {
                            TreeNode node = new TreeNode();
                            node.Name = drv["MENU_NO"].ToString();
                            node.Text = drv["MENU_NM"].ToString();
                            node.ImageIndex = 0;
                            node.SelectedImageIndex = 0;                            
                            treeview.Nodes.Add(node);
                            
                            MakeItem(ref treeview, ref node);

                            node.Expand();
                        }
                        
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "DataSet Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return false;
                }
                finally
                {
                    cmd.Dispose();
                    da.Dispose();
                    ds.Dispose();
                    if (conn.State != ConnectionState.Closed)
                    {
                        conn.Close();
                    }
                }
            }

            return true;
        }

        private void MakeItem(ref TreeView treeview, ref TreeNode treenode)
        {
            DataView dv = new DataView();
            dv.Table = ds.Tables["S_MENU"];
            dv.RowFilter = "UP_MENU_NO = '" + treenode.Name + "'";
            dv.Sort = "SORT_NO";

            foreach (DataRowView drv in dv)
            {
                TreeNode node = new TreeNode();
                node.Name = drv["MENU_NO"].ToString();
                node.Text = drv["MENU_NM"].ToString();
                string winno = drv["WIN_NO"].ToString();
                if (winno == null || winno == "")
                {
                    node.ImageIndex = 1;
                    node.SelectedImageIndex = 2;
                }
                else
                {
                    node.ImageIndex = 3;
                    node.SelectedImageIndex = 4;
                }
                treenode.Nodes.Add(node);
                
                MakeItem(ref treeview, ref node);
            }
        }
    }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值