ASP.NET- Repeater 嵌套

  我们有时候需要查找出父菜单下面全部的子菜单,然后根据子菜单的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();
            }
        }

    }

 

   

  

posted @ 2013-10-18 08:22  春天又来了  阅读(449)  评论(0编辑  收藏  举报