Nested Gridview no controlo do repetidor
Pergunta
Eu tenho um controle gridview aninhado dentro de um controle de repetidora.
O controle do repetidor é databound em pageload e no evento ItemDataBound Eu olho para o controle gridview
Se e.Item.ItemType = ListItemType.Item Então gvw Dim como GridView = DirectCast (e.Item.Controls (3), GridView) gvw.DataSource = GetData () gvw.DataBind () End If
Depois de tudo isso acontece minha página está exibindo os dados de controles de repetidor e dados no gridview, mas o problema é apenas gridviews alternativos têm dados ou seja, a linha 1, 3, 5 ... no controle repetidor tem grade que é databound mas as linhas 2, 4, 6 ... não exibe dados
marcação é - apenas um exemplo
<repeater>
<itemtemplate>
<table>
<tr>
<td>
<gridview />
</td>
</tr>
<tr>
<td>
<label Text='<%# Eval("some_data") %>'
</td>
</tr>
</table>
</itemtemplate>
</repeater>
novamente a marcação acima é apenas um exemplo e é completa ??p>
Eu acho que eu estou fazendo algo seriamente errado.
Solução
Em seu código
If e.Item.ItemType = ListItemType.Item Then Dim gvw As GridView = DirectCast(e.Item.Controls(3), GridView) gvw.DataSource = GetData() gvw.DataBind() End If
você deve adicionar um "OU" cláusula para verificar se o ItemType é um AlternateItem bem
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