zoukankan      html  css  js  c++  java
  • 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();
                }
            }
    
        }

       

      

  • 相关阅读:
    【Leetcode】Insertion Sort List JAVA实现
    【Leetcode】Sort List JAVA实现
    Maximum Product Subarray JAVA实现
    hadoop2.0中无法启动datanode的问题
    合并排序
    setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式
    postgresql 服务器端编程之hello word
    mac osx get postgresql path
    mac osx install mysql
    django 基于proxy实现用户权限管理
  • 原文地址:https://www.cnblogs.com/cxeye/p/3375362.html
Copyright © 2011-2022 走看看