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.

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top