Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia, alguém pode ajudar.
Tenho um gridview com checkbox e preciso verificar quais estão checados. Porém, mesmo se eu marco todos aparecem checked = false.
Alguém já conseguiu resolver isso?
aspx
<asp:TemplateField HeaderText="Check para ....">
<ItemTemplate>
<asp:CheckBox ID="chk" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
code:
for (int i = 0; i <= grd.Rows.Count - 1; i++)
{
if (grd.Rows[i].RowType == DataControlRowType.DataRow)
{
//CheckBox chk = (CheckBox)grd.Rows[i].Cells[6].Controls[1]; >> já tentei assim e nao deu;
CheckBox chk = (CheckBox)grd.Rows[i].Cells[6].FindControl("chk");
if (chk.Checked)
{
//faça algo
}
}
}Olá Ivan, eu já tinha tentando assim tbm mas não funcionou (msm assim obrigada :) ).
Ele acha o controle, porém dá sempre checked = false.
Não sei se tem a ver com o autopostback, eu coloquei autopostback = true no checkbox e finalmente apareceu checked = true. Mas só que qdo 'checko' ele sai da posição da pagina como se tivesse atualizado a pág. aí o usuário teria que voltar p meio da pág p terminar de checar os outros, e assim fica inviável...
Mais alguma sugestão?
[]'s
Você executa alguma ação no Page_Load da página?
Sim, eu só carrego um literal.
Mas o gridview eu só carrego qdo (!IsPostBack).
Então, tem que funcionar!
rsrsrs! Sim Ivan, tbm concordo com você, acredito que deveria funcionar, pois já vi vários exemplos na net iguais ao meu.
Mas só aparece assim> chk.Checked == false
Infelizmente, não entendo onde está minha falha.
Qdo coloco autpostback no checkbox funciona, mas dá aquele bug q te falei de ficar td hora 'atualizando' a pagina.
Vou tentar refazer num outro aspx p ver. Mas se de repente alguém souber o q pode ser, serei mtssimo grata.
[]'s
Lembrei de uma coisa, o ViewState está ativado?
Qdo eu vejo o código fonte aparece algo assim:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="kHj........">
Isso significa que está ativado né?
Mas (desculpe a minha ignorância) onde ativo?
é, esta ativo, geralmente o padrão é ativo, a não ser que você desative-o na pagina ou no web.config.
Mas esse erro de false poderia ser estivesse desativado.
Ta muito estranho.
da sempre false ou não acha o controle?
Por que você não excuta um foreach é mais simples!