ASP.NET Repeater嵌套Repeater实现菜单加载

            在KS系统中要实现从数据库中读取界面权限文件实现菜单、界面的动态加载。

            效果图:

                

            ASP.NET界面代码

 

           

   <div id="menu-container">
                <asp:Repeater ID="rpMenu" runat="server" onitemdatabound="rpMenu_ItemDataBound">
                  <ItemTemplate>
                    <div class="menu-tit" id="MenuName">
                        <asp:HiddenField ID="hfMenuID" runat="server"  Value='<%#Eval("Id") %>' />
                        <%#Eval("MenuName") %></div>
                        <div class="menu-list">     
                        <div class="top-line"> 
                        </div>          
                      <ul class="nav-items">
                          <asp:Repeater ID="rpWindows" runat="server">
                             <ItemTemplate>
                                <li><a href='<%#Eval("WindowsURL") %>' target="content" id="WindwosName"><%#Eval("WindowsName") %></a></li>
                              </ItemTemplate>  
                         </asp:Repeater>
                        </ul>  
                    </div>   
                     
                  </ItemTemplate>
                </asp:Repeater>
            </div>

 

            C#界面后台代码

 public partial class AdmWelcom : System.Web.UI.Page
    {
     
        protected void Page_Load(object sender, EventArgs e)
        {    
            string strLike="";
            DataBindMenu(strLike);
        }

        public void DataBindMenu(string strLike)
        {
            DataTable dtMenu= new DataTable();  
            AdmMenuManager admMenuManager = new AdmMenuManager();
            //查询菜单
            dtMenu = admMenuManager.QueryMenu(strLike);
            rpMenu.DataSource =dtMenu;
            rpMenu.DataBind();    
        }

        protected void rpMenu_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rpWindows = e.Item.FindControl("rpWindows") as Repeater;
                HiddenField hfMenuID=e.Item .FindControl ("hfMenuID") as HiddenField;
                DataTable dt = new DataTable();
                string strLike = "";
                BLL.AdmMenuManager admMenuManager = new AdmMenuManager();
                string strMenuID = hfMenuID.Value.ToString().Trim() ;
                strLike = " TR_MenuWindows.MenuID='" + strMenuID + "'";
               //查询界面下的窗体
                dt = admMenuManager.QueryMenuWindows(strLike); 
                rpWindows.DataSource = dt;
                rpWindows.DataBind();
             
            }
        }
    }


 

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值