Repeater控件嵌套使用

.aspx页面代码:
        <ul class="menu1">
            <li><a href="#"><%= LanguageValue("home") %></a></li>
            <asp:Repeater ID="Repeater1" runat="server"
                onitemdatabound="Repeater1_ItemDataBound">
                <ItemTemplate>
                    <li>
                        <a href="#"><%# ColumnName(Eval("column_id").ToString())%></a>
                        <ul>
                            <asp:Repeater ID="Repeater2" runat="server">
                                <ItemTemplate>
                                    <a href="#"><%# ColumnName(Eval("column_id").ToString())%></a>
                                </ItemTemplate>
                            </asp:Repeater>
                        </ul>
                    </li>
                </ItemTemplate>
            </asp:Repeater>
        </ul>

.cs代码:
private void RepeaterBind()
{
    DataTable dt = Menu("0");
    Repeater1.DataSource = dt;
    Repeater1.DataBind();
}
protected void Repeater1_ItemDataBound(object sender,System.Web.UI.WebControls.RepeaterItemEventArgs  e)
{
    //判断里层repeater处于外层repeater的哪个位置
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Repeater rep = e.Item.FindControl("Repeater2") as Repeater;   //找到里层的repeater对象
        DataRowView row = (DataRowView)e.Item.DataItem; //找到与里层Repeater关联的外层Repeater数据项
        string id = row["column_id"].ToString();   //获取填充里层Repeater的id
        rep.DataSource = Menu(id);
        rep.DataBind();
    }
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值