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

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

 

ExpandedBlockStart.gif
< 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代码

 

ExpandedBlockStart.gif
 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值