在cnblogs上的专栏

导航

[留着备用]ASP.NET动态菜单生成通用方法

   #region ASP.NET动态菜单生成通用方法
        private void InitTree0(Menu TV,DataSet ds) //根结点加载函数
        {
            TV.Items.Clear();  //TV为TreeView控件            
            DataRow[] rows = ds.Tables[0].Select("parent_id=0");
            for (int i = 0; i < rows.Length; i++)
            {
                MenuItem T_root = new MenuItem();
                DataRow dr = rows[i];
                T_root.Text = dr["menu_name"].ToString();
                T_root.Target =dr["url"].ToString();
                TV.Items.Add(T_root);                
                InitTree(T_root, dr["id"].ToString(),ds);//根结点加载完后,开始调用加载子结点的函数,并开始递归。
            }
        }
        private void InitTree(MenuItem Nd, String Parent_id,DataSet ds) //子树结点加载函数
        {
            DataRow[] rows = ds.Tables[0].Select("parent_id=" + Parent_id);
            if (rows != null)
            {
                for (int i = 0; i < rows.Length; i++)
                {
                    MenuItem Tnd = new MenuItem();
                    DataRow dr = rows[i];
                    Tnd.Text = dr["menu_name"].ToString();
                    Tnd.Target = dr["url"].ToString();
                    Nd.ChildItems.Add(Tnd);
                    InitTree(Tnd, dr["id"].ToString(),ds);//递归调用
                }
            }
        }
        #endregion

posted on 2012-08-09 16:25  Double_  阅读(350)  评论(0编辑  收藏  举报