Ir para conteúdo

POWERED BY:

Arquivado

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

DaniloTec

[Resolvido] Pegar valor de coluna oculta do grid

Recommended Posts

Bom dia gente.

Tenho um Grid com algumas colunas editadas no RowDataBound, exemplo, coluna do tipo bit vira ("Ativo","Inativo"), id de cliente vira ("Nome do cliente"), etc... No evento RowEditing eu preciso pegar os valores da linha selecionada, mas ("Ativo","Inativo") tem que retornar para o bit (true,false), o nome do cliente tem que voltar pro id e assim por diante.

Tentei fazer isso com uma coluna oculta, mas não deu certo.

Existe outra forma de pegar o valor original do dado da tabela sem precisar fazer outra consulta no banco de dados?

Vlw!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe outra saída?

Os valores do tipo bit, por exemplo, vem da base de dados como True e False e eu exibo como Ativo e Inativo. O problema é que quando eu resgato valor eu preciso que ele venha como True e False novamente, entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há uma forma de eu colocar 2 controles dentro de uma mesma coluna do grid?

Minha idéia é de colocar um campo do tipo hidden dentro da coluna para armazenar o valor verdadeiro e jogar o valor mascara dentro do text.

Acho que isso ajuda a resolver meu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri.

Segue o código que deve ser colocado dentro do RowDataBound:

HiddenField hdPublico = new HiddenField();
hdPublico.ID = "hdPublico";
hdPublico.Value = e.Row.Cells[2].Text;
e.Row.Cells[2].Controls.Add(hdPublico);

Label lblPublico = new Label();
lblPublico.ID = "lblPublico";
if (Convert.ToBoolean(e.Row.Cells[2].Text)) { lblPublico.Text = "Interno"; } else { lblPublico.Text = "Externo"; }

e.Row.Cells[2].Controls.Add(lblPublico);
Prontinho! ;)

Vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Disso eu sei. <_<

Estou tentando fazer isso e é exatamente o que não consigo. :D

((HiddenField)gvPesquisa.Rows[1].Cells[4].FindControl("hdPublico")).Value;
E nada de funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei o erro. É o mesmo erro que eu tinha em um outro post, por isso vou copiar e colar a resposta.

O problema está na linha:

if (e.Row.RowType != DataControlRowType.Header){
Aqui eu estou dizendo que quero todas as linhas do grid que sejam diferentes do header. O que eu não esperava é que a linha footer tmb é uma linha e tmb é diferente do header. Por isso sempre exibia a mensagem de index fora da range. <_<

Resolvi com:

if (e.Row.RowType == DataControlRowType.DataRow){
Assim ele ignora tudo que não for linha de conteúdo.

Vlw!!!

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.