DaniloTec 0 Denunciar post Postado Julho 10, 2009 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
quintelab 91 Denunciar post Postado Julho 10, 2009 Vai ser dificil, pois a coluna invisivel não foi renderizada na tela por isso não é possível ler seu valor. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 10, 2009 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
DaniloTec 0 Denunciar post Postado Julho 13, 2009 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
DaniloTec 0 Denunciar post Postado Julho 13, 2009 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
DaniloTec 0 Denunciar post Postado Julho 13, 2009 Problema. Como faço pra resgatar o valor do HiddenField no RowEditing? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 13, 2009 Normalmente basta acessar a propriedade Value do HiddenField. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 13, 2009 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
DaniloTec 0 Denunciar post Postado Julho 14, 2009 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