Verschachtelte Gridview in Repeater-Steuerelement
Frage
Ich habe ein Gridview-Steuerelement in einem Repeater-Steuerelement geschachtelt.
Die Repeater Steuerung auf Pageload und im ItemDataBound Ereignisse datengebundene Ich sehe für das Gridview-Steuerelement
Wenn e.Item.ItemType = ListItemType.Item Dann Dim GVW Wie Grid = Direct (e.Item.Controls (3), Grid) gvw.DataSource = GetData () gvw.DataBind () End If
Nach all dies geschieht, meine Seite angezeigt wird der Repeater steuert die Daten und Daten im Gridview aber das Problem ist nur alternativer Gridviews haben Daten d.h. Zeile 1, 3, 5 ... in Repeaters Steuerung hat Raster, das Databound ist aber die Zeilen 2, 4, 6 ... keine Daten angezeigt werden
Markup ist - nur ein Beispiel
<repeater>
<itemtemplate>
<table>
<tr>
<td>
<gridview />
</td>
</tr>
<tr>
<td>
<label Text='<%# Eval("some_data") %>'
</td>
</tr>
</table>
</itemtemplate>
</repeater>
erneut die obige Markup ist nur ein Beispiel, und es ist komplett
Ich glaube, ich bin etwas falsch zu tun.
Lösung
In Ihrem Code
If e.Item.ItemType = ListItemType.Item Then Dim gvw As GridView = DirectCast(e.Item.Controls(3), GridView) gvw.DataSource = GetData() gvw.DataBind() End If
Sie sollten eine „OR“ Klausel hinzufügen, um zu überprüfen, ob die ItemType ein AlternateItem auch ist
If e.Item.ItemType = ListItemType.Item OR e.Item.ItemType = ListItemType.AlternateItem Then Dim gvw As GridView = DirectCast(e.Item.Controls(3), GridView) gvw.DataSource = GetData() gvw.DataBind() End If