<% ... @ Control Language="C#" AutoEventWireup="true" CodeBehind="LeftMenu.ascx.cs" Inherits="SXT.iPowerKit.HairHouse.Web.WebControls.LeftMenu" %> <% ... @ Register TagPrefix="sxt" Namespace="SXT.Common.Web.UI" Assembly="SXT.Common.Web.UI" %> < script language ="javascript" > ... function outliner(flag) ...{ var child = document.all[event.srcElement.getAttribute("child",false)]; for(i=1;i<=<%=Num %>;i++) ...{ var v=(i+flag); if(document.getElementById(v)) document.getElementById(v).className="collapsed"; } if (null != child) ...{ if(child.className == "collapsed") ...{ child.className = "expanded"; return; } } } </ script > < table cellspacing ="0" cellpadding ="0" width ="100%" > < tr style ="height:5px" >< td ></ td ></ tr > < tr > < td valign ="top" > < table width ="95%" border ="0" align ="center" cellpadding ="0" cellspacing ="0" > < tr > < td id ="Td1" width ="100%" valign ="top" runat ="server" > < sxt:RepeaterEx ID ="rptSystemList" runat ="server" > < ItemTemplate > <% ... --<div style='display:<%# GetAdminStyle(Eval("systemID").ToString())%>'>--%> <div style='display:block'> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100%" height="22" background="image/left_menu_bg.GIF" style="border:1px solid #dfeaf0"> <table width="97%" height="22" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="19%"><img src="/image/LeftMenu/left_menu_dot1.gif" width="31" height="22" /></td> <td width="81%"><font style="font-size:14px; color:#3d7699;font-weight:bold;CURSOR: hand" onclick="outliner('ALL')" child='<%#Eval("Num") %>ALL'><%#Eval("ModuleName")%></font></td> </tr> </table> </td> </tr> </table> <div class='<%# Convert.ToInt32(Eval("Num"))>1?"collapsed":"expanded" %>' id='<%#Eval("Num") %>ALL'> <div style="height:178px"> <table width="144" border="0" align="center" cellpadding="0" cellspacing="0"> <sxt:RepeaterEx ID="rptChildList" runat="server" datasource='<%# ChildSystemDataSource(Eval("moduleID"))%>'> <ItemTemplate> <tr> <td width="14" height="20"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="14" height="20"><img src="image/gscontent_dot1.GIF" width="6" height="6" /></td> </tr> </table> </td> <td width="130"> <a href='<%# Eval("ModuleUrl") %>' class="content"><%# Eval("ModuleName") %></a> </td> </tr> </ItemTemplate> </sxt:RepeaterEx> </table> </div> </div> </div> </ItemTemplate> </sxt:RepeaterEx> </td> </tr> </table> </td> </tr> <tr style="height:5px"><td></td></tr></table> using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace SXT.iPowerKit.HairHouse.Web.WebControls ... { public partial class LeftMenu : BaseUserControl ...{ protected void Page_Load(object sender, EventArgs e) ...{ this.LoadData(); } public override void LoadData() ...{ this.rptSystemList.DataSource = this.DataSource; this.rptSystemList.DataBind(); } public DataSet DataSource ...{ get ...{ try ...{ DataSet ds = new DataSet(); //获得当前系统模块所有子模块 DataTable dataSource = ((SXT.BLLInterface.ISXTPage)(this.Page)).ModuleDefineConfig; //子系统列表,得到源数据结构 DataTable dtSystem = dataSource.Clone(); dtSystem.TableName = "ChildSystemList"; //父系统列表,得到源数据结构 DataTable dtParentSystem = dataSource.Clone(); //在源数据结构,获得父级菜单 DataRow[] drParentSystem = dataSource.Select("ParentModuleID=''"); for (int i = 0; i < drParentSystem.Length; i++) ...{ DataRow dr = dtParentSystem.NewRow(); dr.ItemArray = drParentSystem[i].ItemArray; dtParentSystem.Rows.Add(dr); } //获得父级菜单个数 dtParentSystem.TableName = "ParsentSystemList"; dtParentSystem.Columns.Add(new System.Data.DataColumn("Num", typeof(System.Int32))); dtParentSystem.AcceptChanges(); for (int i = 0; i < dtParentSystem.Rows.Count; i++) ...{ dtParentSystem.Rows[i]["Num"] = i + 1; } //根据父级ModuleID得到所有子系统 for (int j = 0; j < dataSource.Rows.Count; j++) ...{ DataRow[] drChildSystem = dataSource.Select("ParentModuleID='" + dataSource.Rows[j]["ModuleID"] + "'"); for (int k = 0; k < drChildSystem.Length; k++) ...{ DataRow drValue = dtSystem.NewRow(); drValue.ItemArray = drChildSystem[k].ItemArray; dtSystem.Rows.Add(drValue); } } //将数据放入Table中 ds.Tables.Add(dtParentSystem.Copy()); ds.Tables.Add(dtSystem.Copy()); //ds.Relations.Add("MyRelation", ds.Tables[0].Columns["ModuleID"], ds.Tables[1].Columns["ParentModuleID"]); return ds; } catch (Exception ex) ...{ return null; } } } /**//// <summary> /// 根据父级获得子系统 /// </summary> /// <param name="moduleID">父级ID</param> /// <returns></returns> public DataTable ChildSystemDataSource(object moduleID) ...{ DataTable dtChild = this.DataSource.Tables[1]; DataRow[] drChild = dtChild.Select("ParentModuleID='"+moduleID.ToString()+"'"); dtChild = dtChild.Clone(); for (int i = 0; i < drChild.Length; i++) ...{ DataRow dr = dtChild.NewRow(); dr.ItemArray = drChild[i].ItemArray; dtChild.Rows.Add(dr); } return dtChild; } public int Num ...{ get ...{ DataSet ds = this.DataSource; if (ds != null) ...{ return ds.Tables[0].Rows.Count; } else ...{ return 0; } } } }}