二级联动菜单

<% @ 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">&nbsp;<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;
                }

            }

        }

    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值