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语句和数据操作类没有列出来,请根据实际情况进行适当修改。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!