• 技术文章 >后端开发 >C#.Net教程

    Repeater中嵌套使用Repeater

    巴扎黑巴扎黑2017-04-30 10:19:07原创997
    Repeater中嵌套使用Repeater。如图

    php入门到就业线上直播课:进入学习

    本例使用 vs.net 2008(C#)编写。来自 admin10000.com

    后台CS代码

            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    this.dtCategory = GetCategoryTable();
                    this.dtProduct = GetProductTable();
                    rptCategoryList.DataSource = dtCategory;
                    rptCategoryList.DataBind();
                }
            }
    
            // 准备一张分类表
            DataTable GetCategoryTable()
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("CategoryId", typeof(int));
                dt.Columns.Add("CategoryTitle", typeof(string));
                for (int i = 1; i <= 3; i++)
                {
                    DataRow row = dt.NewRow();
                    row["CategoryId"] = i;
                    row["CategoryTitle"] = "分类名字 " + i + "";
                    dt.Rows.Add(row);
                }
                return dt;
            }
            
            // 准备一张产品表
            DataTable GetProductTable()
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("ProductTitle", typeof(string));
                dt.Columns.Add("CategoryId", typeof(int));
                for (int i = 1; i <= 9; i++)
                {
                    DataRow row = dt.NewRow();
                    row["ProductTitle"] = "产品名字 " + i + "";
                    if (i > 6) row["CategoryId"] = 3;
                    else if (i > 3) row["CategoryId"] = 2;
                    else row["CategoryId"] = 1;
                    dt.Rows.Add(row);
                }
                return dt;
            }
    
            // 获取某个类别的产品
            DataTable GetProductTable(int categoryId)
            {
                DataView dv = this.dtProduct.DefaultView;
                dv.RowFilter = " CategoryId=" + categoryId + " ";
                return dv.ToTable();
            }
    
            protected void rptCategoryList_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
                {
                    DataRowView drv = (DataRowView)e.Item.DataItem;
                    Literal ltlTitle = (Literal)e.Item.FindControl("ltlTitle");
                    ltlTitle.Text = drv["CategoryTitle"].ToString();
                    Repeater rptProductList = (Repeater)e.Item.FindControl("rptProductList");
                    rptProductList.DataSource = GetProductTable(Convert.ToInt32(drv["CategoryId"]));
                    rptProductList.DataBind();
                }
            }
    
            protected void rptProductList_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
                {
                    DataRowView drv = (DataRowView)e.Item.DataItem;
                    Literal ltlTitle = (Literal)e.Item.FindControl("ltlTitle");
                    ltlTitle.Text = drv["ProductTitle"].ToString();
                }
            }

    前台aspx代码

      <form id="form1" runat="server">
        <p>
            <asp:Repeater ID="rptCategoryList" runat="server" OnItemDataBound="rptCategoryList_ItemDataBound">
                <ItemTemplate>
                    <p class="listBox">
                        <p class="title">
                            <asp:Literal ID="ltlTitle" runat="server"></asp:Literal></p>
                        <p class="content">
                            <ul>
                                <asp:Repeater ID="rptProductList" runat="server" OnItemDataBound="rptProductList_ItemDataBound">
                                    <ItemTemplate>
                                        <li>
                                            <asp:Literal ID="ltlTitle" runat="server"></asp:Literal>
                                        </li>
                                    </ItemTemplate>
                                </asp:Repeater>
                            </ul>
                        </p>
                    </p>
                </ItemTemplate>
            </asp:Repeater>
        </p>
        </form>

    下载代码示例:PageDemo.RAR

    相关文档: Repeater控件的分页实现 Repeater控件实现编辑、更新、删除操作 Repeater多行间隔显示分隔符的方法

    以上就是Repeater中嵌套使用Repeater的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:Web开发在过去20多年时间里如何改变 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• c语言中源文件编译后生成什么文件• c语言本身有没有输入输出语句• c语言中的标识符是由什么组成• c语言中关键字有多少个• c语言中case是什么意思
    1/1

    PHP中文网