2009-03-09 3 views
1

J'ai un contrôle gridview imbriqué dans un contrôle de répéteur.GridView imbriqué dans le contrôle du répéteur


Le contrôle de répéteur est DataBound sur pageload et en cas ItemDataBound je cherche le contrôle GridView

Si e.Item.ItemType = ListItemType.Item Alors Dim PTAC Comme GridView = DirectCast (e .Item.Controls (3), GridView) gvw.DataSource = GetData() gvw.DataBind() End If

Après tout cela se passe ma page affiche les commandes de répéteur de données et les données i n le gridview mais le problème est seulement gridviews alternées avoir des données -à-dire la ligne 1, 3, 5 ... en fonction de répétition a grille qui est lié aux données mais les lignes 2, 4, 6 ... ne comportent pas de données

le balisage est - juste un exemple

<repeater>
<itemtemplate>
<table>
<tr>
<td>
<gridview />
</td>
</tr>
<tr>
<td>
<label Text='<%# Eval("some_data") %>'
</td>
</tr>
</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 grave.

Répondre

2

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 pour vérifier si le ItemType est un AlternateItem ainsi

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 
+0

Merci beaucoup ... you rock je Je suis vraiment idiot d'ignorer le fait de l'élément alternatif merci une tonne – user75480

+0

Parfois, les pires erreurs sont les plus faciles à résoudre. C'est pourquoi une seconde paire d'yeux aide toujours! À votre santé! –

Questions connexes