我正在使用中繼器來構建自定義表。但是,如果下一行的巡視路線與之前的行不匹配,我無法弄清楚如何使表格顯示小計。嵌套中繼器顯示匹配父中繼器的數據
類似的東西。
row1 tour1
row2 tour 1
tour1 subtotal
row3 tour2
row4 tour2
subtotal
total
<asp:Repeater ID="ParentRepeater" runat="server" DataSourceID="SqlDataSource1">
<HeaderTemplate>
<table border="1">
<tr>
<th>TOUR</th>
<th>THEME</th>
<th>ROUTE</th>
<th>DEPT</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Container.DataItem("tour")%></td>
<td align="center"><%#Container.DataItem("theme")%></td>
<td align="right"><%#Container.DataItem("route")%></td>
<td align="right"><%#Container.DataItem("dep7")%></td>
<asp:Repeater ID="ChildRepeater" runat="server"
DataSourceID="SqlDataSource2">
<HeaderTemplate>
<table border="1">
<tr>
<th>BOOKNO</th>
<th>PARTY</th>
<th>TOUR</th>
<th>THEME</th>
<th>ROUTE</th>
<th>DEPT</th>
<th>HOME</th>
<th>USERID</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td align="center"><%#Container.DataItem("bookno") %></td>
<td><%#Container.DataItem("party")%></td>
<td><%#Container.DataItem("tour")%></td>
<td align="center"><%#Container.DataItem("theme")%></td>
<td align="right"><%#Container.DataItem("route")%></td>
<td align="right"><%#Container.DataItem("dep7")%></td>
<td align="right"><%#Container.DataItem("home")%></td>
<td align="right"><%#Container.DataItem("userid")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
代碼背後
Protected Sub ItemBound(ByVal sender As Object, ByVal args As RepeaterItemEventArgs)
If args.Item.ItemType = ListItemType.Item Then
Dim childRepeater As Repeater = DirectCast(args.Item.FindControl("ChildRepeater"), Repeater)
childRepeater.DataSource = SqlDataSource2
childRepeater.DataBind()
End If
End Sub
但是這顯示了所有嵌套中繼器不匹配,例如旅遊,主題parentrepeater領域 的那些數據,dep7應該與孩子中繼
你可以使用兩個嵌套中繼器,就像本文:[在ASP.NET中使用嵌套中繼器的快速指南](http://www.codeproject.com/KB/aspnet/AspNetNestedRepeaters.aspx) –
hmm似乎它可以工作,我試圖只寫一個簡單的if語句,檢查e.row是否<>到e.row.index - 1列,那麼它會做一個小計是完全關閉 – MyHeadHurts
你會必須爲包含小計的行動態生成HTML,對吧?我想這可能也會起作用,儘管我認爲自動生成的HTML比嵌套的中繼器(至少將所有的HTML保留在頁面中)更混亂。 –