ASP.NET- Repeater 嵌套

本文介绍了一种使用ASP.NET中Repeater控件嵌套显示新闻列表的方法。通过前端HTML与后端C#程序结合,实现了从父菜单查找所有子菜单,并进一步获取每个子菜单下的新闻列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  我们有时候需要查找出父菜单下面全部的子菜单,然后根据子菜单的ID查找出该类别下面的全部新闻。

  通常往往只知道父级菜单的ID,但不知道父级菜单下面有多少个子菜单,也不知道子菜单的ID

  所以我们往往需要根据这一条SQL语句:select 子菜单ID from 表 where 父菜单ID=Id 找出全部的子菜单ID。

  然后根据子菜单ID去查找出该类别下面的全部新闻

 

  使用Repeater嵌套可以很方便实现这一点,示例如下:

  

  前端HTML示例:

        <!--使用repeater嵌套-->
        <asp:Repeater runat="server" ID="repNewsList" OnItemDataBound="repNewsList_ItemDataBound">
            <ItemTemplate>
                <a href='newsListChild.aspx?boardId=<%#Eval("Id") %>'>更多</a><br />
                <asp:Repeater runat="server" ID="repNewsChildList">
                    <ItemTemplate>
                        <%# Eval("Title") %><br />
                    </ItemTemplate>
                </asp:Repeater>
                <hr />
            </ItemTemplate>
        </asp:Repeater>

  后端CS程序示例:

    public partial class newsList : System.Web.UI.Page
    {
        WmwMgr db = new WmwMgr();
        protected void Page_Load(object sender, EventArgs e)
        {
                BindData(30);

        }

        /// <summary>
        /// 绑定栏目数据
      /// </summary>
        protected void BindData(int pId)
        {
            repNewsList.DataSource = db.Get_ChildColumnByParentId(30);
            repNewsList.DataBind();
        }

        /// <summary>
        /// 根据栏目数据获得新闻列表数据(嵌套Repeater)
      /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void repNewsList_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rep = e.Item.FindControl("repNewsChildList") as Repeater;
                DataRowView rowv = (DataRowView)e.Item.DataItem;
                int BoardId = Convert.ToInt32(rowv["Id"]); //获取栏目Id
                rep.DataSource = db.Get_NewsListByBoardId(10, BoardId);
                rep.DataBind();
            }
        }

    }

 

   

  

转载于:https://www.cnblogs.com/cxeye/p/3375362.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值