• 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();
                }
            }
    
        }

       

      

  • 相关阅读:
    python面向对象基本概念(OOP)
    python函数进阶(函数参数、返回值、递归函数)
    python变量进阶(可变不可变,局部变量和全局变量)
    1.面试题 排序算法总结
    前端性能优化
    对键盘事件的监控
    数据处理2
    强制提交git
    webpack学习记录
    数据处理 筛选
  • 原文地址:https://www.cnblogs.com/cxeye/p/3375362.html
走看看 - 开发者的网上家园