Pergunta

ASP.NET 1.1 - Eu tenho um DataGrid em uma página ASPX que está ligada a dados e exibe um valor dentro de uma caixa de texto.O usuário pode alterar esse valor e, em seguida, clicar em um botão onde o código por trás basicamente itera através de cada DataGridItem na grade, faz um FindControl para o ID da caixa de texto e atribui o valor .Text a uma variável que é então usada para atualizar o banco de dados.O DataGrid é religado com os novos valores.

O problema que estou tendo é que, ao atribuir o valor .Text à variável, o valor que está sendo recuperado é o valor original do databound e não o valor do usuário recém-inserido.Alguma idéia sobre o que pode estar causando esse comportamento?

Exemplo de código:

foreach(DataGridItem dgi in exGrid.Items)
{
    TextBox Text1 = (TextBox)dgi.FindControl("TextID");
    string exValue = Text1.Text; //This is retrieving the original bound value not the newly entered value
    // do stuff with the new value
}
Foi útil?

Solução

Então o exemplo de código é do evento de clique do botão?

Tem certeza de que não está religando sua fonte de dados no postback?

Outras dicas

Quando você está tentando recuperar o valor do TextBox?ou sejaquando o exemplo de código que você forneceu está sendo executado?

Se ainda não o fez, você desejará configurar um método manipulador para o evento ItemCommand do DataGrid.Você deve procurar o novo valor TextBox nesse método.Você também deve certificar-se de que seu DataGrid não esteja sendo vinculado novamente no postback.

Eu também recomendo a leitura da excelente série de artigos de Scott Mitchell sobre como usar o controle DataGrid e todas as suas funções:http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top