后台代码: private void CreateMenu(UserInf userinf) { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["CooliteString"].ConnectionString); string strsql = "select distinct ClassID,Team_ID,ClassName,ClassRemark,ClassType,ClassParentID,Status,SerialNo from role_rule,uds_class1 where role_id in (select role_id from role where staff_id in (select id from Employee where CardNo='" + userinf.cardno + "' )) and classid=team_id"; SqlDataAdapter da = new SqlDataAdapter(strsql, con); DataSet ds = new DataSet(); da.Fill(ds, "Menu"); DataRow[] menus = ds.Tables[0].Select("ClassParentID=0", "SerialNo"); foreach (DataRow menu in menus) { Coolite.Ext.Web.Panel PanelItem = new Coolite.Ext.Web.Panel(); PanelItem.Title = menu["ClassName"].ToString(); PanelItem.ID = "PanelItem" + menu["ClassID"].ToString(); DataRow[] TreeMenu = ds.Tables[0].Select("ClassParentID='" + menu["ClassID"].ToString() + "'", "SerialNo") ; Coolite.Ext.Web.TreePanel Tree = new TreePanel(); Tree.Title=menu["ClassName"].ToString(); Tree.ID="Tree"+menu["ClassID"].ToString(); Coolite.Ext.Web.TreeNode Root=new Coolite.Ext.Web.TreeNode("ri"); Tree.Width = Unit.Pixel(150); Tree.Height = Unit.Pixel(150); Tree.Root.Add(Root); Tree.RootVisible = false; //PanelItem.Items.Add(Tree); PanelItem.Controls.Add(Tree); //添加树 //Tree.Listeners.Click.Handler = "if(node.attributes.href){e.stopEvent();loadPage(#{CenterPanel}, node);}"; foreach (DataRow SubTree in TreeMenu)//添加子结点 { Coolite.Ext.Web.TreeNode ParentNode = new Coolite.Ext.Web.TreeNode(); ParentNode.Text = SubTree["ClassName"].ToString(); string Url = SubTree["ClassType"].ToString(); //ParentNode.Href = SubTree["ClassType"].ToString(); if (Url != "0") { ParentNode.Listeners.Click.Fn = "onNodeClick"; } Root.Nodes.Add(ParentNode); DataRow[] ChildrenTree = ds.Tables[0].Select("ClassParentID='" + SubTree["ClassID"].ToString() + "'", "SerialNo"); foreach (DataRow Leaf in ChildrenTree) { Coolite.Ext.Web.TreeNode LeafNode = new Coolite.Ext.Web.TreeNode(); LeafNode.Text = Leaf["ClassName"].ToString(); //LeafNode.Href = Leaf["ClassType"].ToString(); ParentNode.Nodes.Add(LeafNode); Response.Cookies["Card_No"].Value = userinf.cardno; Response.Cookies["Card_No"].Expires = DateTime.Now.AddDays(1); LeafNode.Listeners.Click.Handler = "addTab(#{CenterPanel},'" + LeafNode.Text + "','"+Leaf["ClassType"].ToString()+"')"; } } A1.Items.Add(Tree); } 前台界面: <ext:Panel ID="Panel2" runat="server" Icon=User Width="200"> <Body> <ext:Accordion ID="A1" runat=server Animate="true"> </ext:Accordion> </Body> </ext:Panel> 效果图: