Gridview imbriqué dans le contrôle de répéteur
Question
J'ai un contrôle gridview imbriqué dans un contrôle de répéteur.
Le contrôle repeater est lié à la donnée sur pageload et dans l'événement itemdatabound. Je cherche le contrôle gridview
Si e.Item.ItemType = ListItemType.Item Then Dim gvw As GridView = DirectCast (e.Item.Controls (3), GridView) gvw.DataSource = GetData () gvw.DataBind () Fin si
Après tout cela, ma page affiche les données du contrôle du répéteur. et les données dans la grille, mais le problème est que les autres vues de grille ont des données c'est-à-dire que les rangées 1, 3, 5 ... du contrôle de répéteur ont une grille liée aux données mais les lignes 2, 4, 6 ... n'affichent pas les données
le balisage est - juste un exemple
<repeater>
<itemtemplate>
<table>
<tr>
<td>
<gridview />
</td>
</tr>
<label Text='<%# Eval("some_data") %>'
</table>
</itemtemplate>
</repeater>
<=>
<=>
<=>
<=>
encore une fois le balisage ci-dessus est juste un exemple et il est complet
Je pense que je fais quelque chose de très grave.
La solution
Dans votre 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
vous devez ajouter un " OU " clause permettant de vérifier si ItemType est également un AlternateItem
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