2008-09-17 11 views
2

ASP.NET 1.1 - У меня есть datagrid на странице aspx, которая является привязкой данных и отображает значение в текстовом поле. Пользователь может изменить это значение, а затем нажать на кнопку, где код позади итерации через каждый DataGridItem в сетке, делает FindControl для идентификатора текстового поля, затем присваивает значение .Text переменной, которая затем используется для обновить базу данных. Датагрит восстанавливается с новыми значениями.Как получить измененное значение текстового поля с привязкой к базе данных в datagrid

Проблема, с которой я сталкиваюсь, заключается в том, что при присвоении переменной значения .Text возвращаемое значение является исходным значением данных, а не только введенным пользователем значением. Любые идеи относительно того, что может вызывать такое поведение?

Пример кода:

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 
     } 

Благодаря

ответ

0

Так образец кода от вашего щелчка кнопки события?

Вы уверены, что не перескакиваете свой источник данных при обратной передаче?

+0

Привет AROS, Да, это в случае button_click. Просто проверка привязки в page_load ... Черт - вот оно - привязка за пределами if (! Page.IsPostBack), вызываемого до button_click. Спасибо – acripps 2008-09-17 02:39:31

0

Когда вы пытаетесь извлечь значение из TextBox? то есть когда образец кода, который вы предоставили, выполняется?

Если вы еще этого не сделали, вы хотите настроить метод обработчика для события ItemCommand DataGrid. Вы должны искать новое значение TextBox в этом методе. Вы также должны убедиться, что DataGrid не повторно привязан к обратной передаче.

Я также настоятельно рекомендую прочитать отличную статью серии Скотта Митчелла об использовании элемента управления DataGrid и все его функции: http://aspnet.4guysfromrolla.com/articles/040502-1.aspx

+0

Спасибо за ответ - это произошло из-за того, что datagrid отскакивает от обратной передачи, но Aros попал в первую очередь. Посмотрите ссылку – acripps 2008-09-17 03:02:16