• Repeater嵌套Repeater


    第一步:在前台建立两个Repeater,一个嵌套在另一个Repeater里面,下面代码没什么好说的。

               <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
                <ItemTemplate>
                <table border="1" bordercolor="gray" style="border-collapse: collapse; ">
                 <tr bgcolor="#c0c0c0" style="color:DimGray; font-weight:bold;">
                  <td width="70px" >
                   名称:
                  </td>
                  <td width="350px">
                   <%# Eval("project_name")%>
                  </td>
                 </tr>                     
                <tr>
                  <td colspan="2">
                      <asp:Repeater ID="Repeater2" runat="server">
                      <HeaderTemplate>
                        <table border="1" bordercolor="gray" style="border-collapse:collapse;">
                        <tr>
                         <td width="68px">
                           组号
                         </td>
                         <td width="120px">
                           组金额
                         </td>
                        </tr>
                        </table>
                      </HeaderTemplate>
                      <ItemTemplate>
                        <table border="1" bordercolor="gray" style="border-collapse: collapse;">
                        <tr>
                         <td width="68px">
                           <%# Eval("group_no")%>
                         </td>
                         <td width="120px">
                           <%# string.Format("{0:N0}", Eval("app_value_group"))%>
                        </td>
                        </tr>
                        </table>
                      </ItemTemplate>
                      </asp:Repeater>
                 </td>
                  </tr>
                </table>
                <br />
                </ItemTemplate>
                </asp:Repeater>

    第二步:建立Repeater1的绑定函数。并在适当的地方引用。

        private void prRepeater1([参数1][,参数2])
        {
            //SQL语句
            string sql = "XXXXX";
            //数据库操作类执行SQL语句并返回dataset等
            this.Repeater1.DataSource =DB.AccessAdp(sql);
            //绑定
            this.Repeater1.DataBind();
        }
          protected void Page_Load(object sender, EventArgs e)
        {
            //页面加载引用
            this.prRepeater1([参数1][,参数2]);
         }

    第三步:也是最关键的地方,在Repeater1的ItemDataBound事件中绑定Repeater2,代码如下:

        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rep = e.Item.FindControl("Repeater2") as Repeater;
                DataRowView rowv = (DataRowView)e.Item.DataItem;
                //以下是读取Repeater1中绑定数据的字段,用于Repeater2的查询条件
                string strDecide_No =rowv["xxxx"].ToString();
                string strVer_No = rowv["xxxx"].ToString();
                 //以下是Repeater2的数据读取和绑定
                string sql = " XXXXXX"; 
               //调用数据操作类执行SQL语句
                rep.DataSource = DB.AccessAdp(sql);
                rep.DataBind();
            }
        }

    以上是实现过程,SQL语句和数据操作类没有列出来,请根据实际情况进行适当修改。

  • 相关阅读:
    改造vant日期选择
    css3元素垂直居中
    npm综合
    (转)网页加水印方法
    Mac下IDEA自带MAVEN插件的全局环境配置
    隐藏注册控件窗口
    High performance optimization and acceleration for randomWalk, deepwalk, node2vec (Python)
    How to add conda env into jupyter notebook installed by pip
    The Power of WordNet and How to Use It in Python
    背单词app测评,2018年
  • 原文地址:https://www.cnblogs.com/52net/p/2541240.html
Copyright © 2020-2023  润新知