解决C# Repeater内嵌Repeater 数据绑定,以及第二次层Repeater的ItemDataBound事件怎么处理

呵呵,好久没写了,继续上问题,以后我写的都是我遇到的问题以及群里相关人士的问题,比较棘手的贴在这里(顺便打个广告群号115180614,.net技术群,混群的勿扰,群主江湖,就说老男孩介绍就行了。)。

<asp:Repeater ID="rpOrderInfo" runat="server" OnItemDataBound="rpOrderInfo_ItemDataBound">
            <ItemTemplate>
                <%Eval("Name")%>------
                <asp:Repeater ID="Repeater1" runat="server">
                    <ItemTemplate>
                       <asp:Label runat="server" ID="lblRe2" Text='<%# Eval("ID")%>'></asp:Label> </ItemTemplate>
                </asp:Repeater>
                <br />
            </ItemTemplate>
            
        </asp:Repeater>
HTML代码
 1  protected void Page_Load(object sender, EventArgs e)
 2         {
 3             if (!IsPostBack)
 4             {
 5                 //下面代码就是生成一个DataTable 绑定到外层(第一层)Repeater
 6                 DataTable dt = new DataTable();
 7                 dt.Columns.Add("ID", typeof(string));
 8                 dt.Columns.Add("Name", typeof(string));
 9                 for (int i = 0; i < 10; i++)
10                 {
11                     DataRow dr = dt.NewRow();
12                     dr["ID"] = i.ToString();
13                     dr["Name"] = "小天"+i.ToString();
14                     dt.Rows.Add(dr);
15                 }
16                 rpOrderInfo.DataSource = dt;
17                 rpOrderInfo.DataBind();
18                 
19 
20             }
21         }
22 
23         protected void rpOrderInfo_ItemDataBound(object sender, RepeaterItemEventArgs e)
24         {
25             if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
26             {
27                 //外层(第一次)DataBound的时候 找到内层(第二层),给内层绑定数据。
28                 Repeater Repeater1 = (Repeater)e.Item.FindControl("Repeater1");
29                 DataTable dt = new DataTable();
30                 dt.Columns.Add("ID", typeof(string));
31                 for (int i = 0; i < 10; i++)
32                 {
33                     DataRow dr = dt.NewRow();
34                     dr["ID"] = i.ToString();
35                     dt.Rows.Add(dr);
36                 }
37                 Repeater1.DataSource = dt;
38                 Repeater1.DataBind();
39                 //这里是遍历内层,item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem 这句话shiite关键,发现没有,跟外层的rpOrderInfo_ItemDataBound
40                 //是不是相似,其实就是ItemDataBound 事件,这不过这里是手写的。
41                 foreach (RepeaterItem item in Repeater1.Items)
42                 {
43                     if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
44                     {
45                         Label lbl = item.FindControl("lblRe2") as Label;
46                         if (lbl != null && lbl.Text == "2")
47                         {
48                             lbl.Text = "Red";
49                         }
50                     }
51                 }
52             }
53         }
后台代码

呵呵,有啥问题,欢迎来群里探讨,欢迎各位大神指导。。。

原文地址:https://www.cnblogs.com/theMaxBear/p/3419030.html