Obtendo valores dos textboxes de uma GridView CSharp

31/10/2012

Bom dia pessoal,

É o seguinte: tenho ma gridview que monta textboxes atraves do itemtemplate.

Essas caixas de texto são editáveis pelo usuário.

Quero obter o valor que o usuário digitou mas não estou conseguindo, simplesmente vem vazio.

Já fiz de várias formas:

1 - Varrendo a Grid. Um botão dispara essa varredura:

foreach (GridViewRow row in grdUsuarioProjeto.Rows)
{
TextBox text = row.FindControl("txtDtIni") as TextBox ;
text . Text <------------ VEM VAZIO
}

2 - Pelo evento OnSelectedIndexChanged da Grid. Defino um botao com CommandName="Select" e no acionamento do mesmo tento obter o valor:

protected void grd_SelecionarRegistro(object sender, EventArgs e)
{

TextBox text = (TextBox)grdVinculaProjeto.SelectedRow.FindControl("txtDtFim");

text . Text <------------ VEM VAZIO

}

No disparo desses botões a tela entra em postback e reconstroi a grid, causando a perda dos dados digitados nos campos de texto contidos nela.

Alguem já passou por isso e teria alguma idéia ?

Muito Obrigado.

Leandro Silva

Respostas

31/10/2012

Robson Robsonalves.net

Bom dia pessoal, É o seguinte: tenho ma gridview que monta textboxes atraves do itemtemplate.


tem esse jeito,
http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/4f8019f8-3f37-4ae1-afa1-407768242e93

mas eu recomendo você fazer utilizando o edittemplate do gridview:

http://www.asp.net/web-forms/tutorials/data-access/custom-formatting/using-templatefields-in-the-gridview-control-cs

assim a linha que for editada, o gridview gera os textbox e quando for salvar ele catpura o evento da linha e vc faz o update.
Responder Citar