Gridview annidato nel controllo del ripetitore
Domanda
Ho un controllo gridview nidificato in un controllo ripetitore.
Il controllo del ripetitore è nel database al pageload e nell'evento itemdatabound Cerco il controllo gridview
Se e.Item.ItemType = ListItemType.Item Quindi Dim gvw As GridView = DirectCast (e.Item.Controls (3), GridView) gvw.DataSource = GetData () gvw.DataBind () End If
Dopo tutto ciò, la mia pagina mostra i dati dei controlli del ripetitore e i dati nel gridview ma il problema è che solo i gridviewview alternativi hanno dati vale a dire la riga 1, 3, 5 ... nel controllo del ripetitore ha una griglia che è databound ma le righe 2, 4, 6 ... non visualizzano i dati
markup è - solo un esempio
<repeater>
<itemtemplate>
<table>
<tr>
<td>
<gridview />
</td>
</tr>
<label Text='<%# Eval("some_data") %>'
</table>
</itemtemplate>
</repeater>
<=>
<=>
<=>
<=>
ancora una volta il markup sopra riportato è solo un esempio ed è completo
Penso di fare qualcosa di gravemente sbagliato.
Soluzione
Nel tuo codice
If e.Item.ItemType = ListItemType.Item Then Dim gvw As GridView = DirectCast(e.Item.Controls(3), GridView) gvw.DataSource = GetData() gvw.DataBind() End If
dovresti aggiungere un " OPPURE " clausola per verificare se ItemType è anche 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