Repeater中嵌套使用Repeater


本文摘自PHP中文网,作者巴扎黑,侵删。

Repeater中嵌套使用Repeater。如图

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

后台CS代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

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代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<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的详细内容!

相关阅读 >>

《asp.net》数据的绑定―repeater图文详解

.net用repeater实现分页效果的代码详解

repeater多行间隔显示分隔符的方法

repeater中嵌套使用repeater

更多相关阅读请进入《repeater》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...