多级下拉菜单(动态)


-------------------------------------
源代码下载/Files/singlepine/topmenu.rar

public class TopMenu : System.Web.UI.Page
{
    protected DataRow[] father;
    protected DataRow[] first;
    protected DataRow[] second;
        private void Page_Load(object sender, System.EventArgs e)
        {
            
        }
    public static string ConnectionString=System.Configuration .ConfigurationSettings .AppSettings["ConnectionString"];
    
        GetDataSet#region GetDataSet
        public static DataSet GetDataSet(string sql)
        {
            SqlDataAdapter    sda =new SqlDataAdapter(sql,ConnectionString);
            DataSet ds=new DataSet();
            sda.Fill(ds);
            return ds;
        }
        #endregion
        Web Form Designer generated code#region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
        
        /**//**//**//// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {    
            this.Load += new System.EventHandler(this.Page_Load);
        }
        #endregion
    LoadTopMenu#region LoadTopMenu
    protected string LoadTopMenu()
    {
        //IsBoot设置菜单级别,0一级,1二级,2三级,依此类推.
        string sqlFather="select * from topmenu order by IsBoot";
        DataSet dsFather=GetDataSet(sqlFather);
        father=dsFather.Tables[0].Select("IsBoot=0","IsBoot");
        string menu="";            
        int one=0;
        int two=1;
        int three=1;
        foreach(DataRow drfather in father)
        {                
            menu+="mpmenu"+one+"=new mMenu("+"'"+drfather["text"]+"'"+",'/','self','','','','');";
            first=dsFather.Tables[0].Select("ParentID='"+Convert.ToInt32(drfather["ID"])+"' and IsBoot=1","IsBoot");
            foreach(DataRow drfirst in first)
            {
                second=dsFather.Tables[0].Select("ParentID='"+Convert.ToInt32(drfirst["ID"])+"' and IsBoot=2","IsBoot");
                if(second.Length==0)
                {
                    menu+="mpmenu"+one+".addItem(new mMenuItem("+"'"+drfirst["text"]+"'";//description
                    menu+=","+"'"+drfirst["url"]+"'"+",";//url
                    menu+="'"+drfirst["target"]+"'"+",";//target
                    menu+=""+drfirst["visible"]+",";//是否可见,false可见,true不可见
                    menu+="'"+drfirst["status"]+"'"+",";//状态条
                    menu+="null,'','','',''));";
                }
                foreach(DataRow drsecond in second)
                {    
                    menu+="msub"+two+"=new mMenuItem("+"'"+drfirst["text"]+"','',"+"'"+drfirst["target"]+"'";
                    menu+=","+drfirst["visible"]+",";//是否可见,false可见,true不可见
                    menu+="'','1','','','','');";

                    menu+="msub"+three+".addsubItem(new mMenuItem("+"'"+drsecond["text"]+"'";//description
                    menu+=","+"'"+drsecond["url"]+"'"+",";//url
                    menu+="'"+drsecond["target"]+"'"+",";//target
                    menu+=""+drsecond["visible"]+",";//是否可见,false可见,true不可见
                    menu+="'"+drsecond["status"]+"'"+",";//状态条
                    menu+="null,'','','',''));";
                    menu+="mpmenu"+one+".addItem(msub"+two+");";//addItem
                    three++;
                }
                two++;
            }
            one++;
        }
        return menu;
    }
    #endregion
}

3.数据库脚本
 

--建表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[topmenu]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[topmenu]
GO

CREATE TABLE [dbo].[topmenu] (
    [ID] [int] NOT NULL ,
    [parentId] [int] NOT NULL ,
    [text] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    [url] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
    [target] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [IsBoot] [int] NULL ,
    [visible] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [status] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]
GO

--插入测试数据
insert into topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible] ,[status])
values(1,0,'深圳','http://singlepine.cnblogs.com/articles/259955.html','self',0,'false','深圳')

insert into topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible] ,[status])
values(2,1,'南山','http://singlepine.cnblogs.com/articles/259955.html','self',1,'false','南山')

insert into topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible] ,[status])
values(3,1,'福田','http://singlepine.cnblogs.com/articles/259955.html','self',1,'false','福田')

insert into topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible] ,[status])
values(4,2,'科技园','http://singlepine.cnblogs.com/articles/259955.html','self',2,'false','科技园')

insert into topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible] ,[status])
values(5,3,'塞格','http://singlepine.cnblogs.com/articles/259955.html','self',2,'false','塞格')

insert into topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible] ,[status])
values(6,0,'广州','http://singlepine.cnblogs.com/articles/259955.html','self',0,'false','广州')

insert into topmenu([ID],[parentId],[text],[url],[target],[IsBoot],[visible] ,[status])
values(7,6,'广州火车站','http://singlepine.cnblogs.com/articles/259955.html','self',1,'false','广州火车站')

posted on 2007-06-20 13:32 chenguo 阅读(645) 评论(0)  编辑  收藏 所属分类: 组件 标签使用


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

留言簿

随笔分类(1)

文章分类(52)

好友 小山的博客

最新随笔

最新评论