Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Romulinho

DataKeys do DataGrid

Recommended Posts

Olá pessoal, to fazendo uma aplicação web e em uma das páginas estou utilizando um datagrid que contém um TemplateColumn. Dentro dessa coluna tem um checkbox e durante a troca de páginas do datagrid eu tenho q persistir o valor dos checkbox marcados.

Estou usando isso:

'Recupera o ArrayList do ViewState        Dim arrayCheck As ArrayList = CType(ViewState("array_ckSelItem"), ArrayList)        Dim ck As CheckBox        For Each Item As DataGridItem In grid.Items            ck = CType(Item.FindControl("ckSelItem"), CheckBox)            If Not IsNothing(ck) Then                If grid.DataKeys.Count > 0 Then                    Dim id As Int32 = Convert.ToInt32(grid.DataKeys(Item.ItemIndex))                    If arrayCheck.Contains(id) And Not ck.Checked Then                        arrayCheck.Remove(id)                    ElseIf Not arrayCheck.Contains(id) And ck.Checked Then                        arrayCheck.Add(id)                    End If                End If            End If        Next        ViewState("array_ckSelItem") = arrayCheck

Só que dá erro na linha onde tem grid.DataKeys(Item.ItemIndex), erro de OutOfRange porque o DataKeys.Count ta retornando zero. O datagrid contém itens...

 

Se alguém puder me ajudar... Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para você verificar se o item está marcado deve usar assim:

 

for i = 0 to cb_opcionais.Items.Count -1

if cb_opcionais.items(i).Selected then

sql_inserte ="insert into possui(veiculo, opcionais) values ('"& ultimo_registro &"', '"& cb_opcionais.items(i).value &"')"

executa.executa_sql(sql_inserte)

end if

next i

 

Aqui estou fazendo um loop por todos os checkbox de um checkboxlist e gravando no banco. Não sei se serve muito, mas de qualquer maneira você pode dar uma olhada, ou então entra no site abaixo que tem vários exemplos de DataGrid:

 

http://www.dotnetjunkies.com/quickstart/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.