Repeater 三层嵌套

前台代码:

<table cellpadding="0" cellspacing="0" border="0">
                            <asp:Repeater ID="rpt_menu1" runat="server" OnItemDataBound="rpt_menu1_ItemDataBound">
                                <ItemTemplate>
                                    <tr>
                                        <td>
                                            <input type="checkbox" id='cbx1_menu<%#Eval("id") %>' value='<%#Eval("id") %>' tag="cbx1_menu" />
                                        </td>
                                        <td>
                                            <asp:Label ID='menu1_name' runat="server" Text='<%#Eval("菜单名") %>'></asp:Label>
                                        </td>
                                    </tr>
                                    <tr id='rpt1_menu<%#Eval("id") %>' style="display: none;">
                                        <td colspan="2">
                                            <table cellpadding="0" cellspacing="0" border="0">
                                                <asp:Repeater ID="rpt_menu2" runat="server">
                                                    <ItemTemplate>
                                                        <tr>
                                                            <td style="width: 50px;">
                                                            </td>
                                                            <td>
                                                                <input type="checkbox" id='cbx2_menu<%#Eval("id") %>' value='<%#Eval("id") %>' tag="cbx2_menu" />
                                                            </td>
                                                            <td>
                                                                <asp:Label ID='menu1_name' runat="server" Text='<%#Eval("菜单名") %>'></asp:Label>
                                                            </td>
                                                        </tr>
                                                        <tr id='rpt2_menu<%#Eval("id") %>' style="display: none;">
                                                            <td colspan="3">
                                                                <table cellpadding="0" cellspacing="0" border="0">
                                                                    <asp:Repeater ID="rpt_menu3" runat="server">
                                                                        <ItemTemplate>
                                                                            <tr>
                                                                                <td style="width: 100px;">
                                                                                </td>
                                                                                <td>
                                                                                    <input type="checkbox" id='cbx3_menu<%#Eval("id") %>' value='<%#Eval("id") %>' />
                                                                                </td>
                                                                                <td>
                                                                                    <asp:Label ID='menu1_name' runat="server" Text='<%#Eval("菜单名") %>'></asp:Label>
                                                                                </td>
                                                                            </tr>
                                                                        </ItemTemplate>
                                                                    </asp:Repeater>
                                                                </table>
                                                            </td>
                                                        </tr>
                                                    </ItemTemplate>
                                                </asp:Repeater>
                                            </table>
                                        </td>
                                    </tr>
                                </ItemTemplate>
                            </asp:Repeater>
                        </table>

后台代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Getmenu();
       }

  protected void Getmenu()
    {
        string sql = "select * from sys_menu where 进入角色='0' and 父ID=0";
        DM dm = new DM();
        DataSet ds = dm.getsql(sql);
        this.rpt_menu1.DataSource = ds;
        this.rpt_menu1.DataBind();
    }

 protected void rpt_menu1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Repeater rpt_menu2 = (Repeater)e.Item.FindControl("rpt_menu2");
            rpt_menu2.ItemDataBound += new RepeaterItemEventHandler(rpt_menu2_ItemDataBound);
            DataRowView drv = (DataRowView)e.Item.DataItem;
            string Menu_ID = drv["id"].ToString();
            DM dm = new DM();
            DataSet ds = dm.getsql("select * from sys_menu where 进入角色='0' and 父ID=" + Menu_ID);
            rpt_menu2.DataSource = ds;
            rpt_menu2.DataBind();
        }
    }

    protected void rpt_menu2_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
            Repeater rpt_menu3 = (Repeater)e.Item.FindControl("rpt_menu3");
            DataRowView drv = (DataRowView)e.Item.DataItem;
            string Menu_ID = drv["id"].ToString();
            DM dm = new DM();
            DataSet ds = dm.getsql("select * from sys_menu where 进入角色='0' and 父ID=" + Menu_ID);
            rpt_menu3.DataSource = ds;
            rpt_menu3.DataBind();
        }
    }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值