zoukankan      html  css  js  c++  java
  • 解决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         }
    后台代码

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

  • 相关阅读:
    8.9乘船问题
    8.8几个背包问题
    8.7贪心策略例题:字典序最小问题
    8.6贪心策略例题:区间覆盖问题
    8.5贪心策略例题:区间选点问题
    8.4贪心策略例题:区间调度问题
    SQL 报表 生成月份临时表
    CentOS8 .NET Core项目部署
    Django with database on SQL Server
    SQL 父子表,显示表中每条记录所在层级
  • 原文地址:https://www.cnblogs.com/theMaxBear/p/3419030.html
Copyright © 2011-2022 走看看