Как получить измененное значение текстового поля с привязкой к данным в сетке данных

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
}

person acripps    schedule 17.09.2008    source источник


Ответы (2)


Итак, пример кода взят из события нажатия кнопки?

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

person Ryan Sampson    schedule 17.09.2008
comment
Привет, Арос. Да, это событие button_click. Просто проверка привязки в page_load... Черт, вот и все - привязка вне if(!Page.IsPostBack) вызывается до button_click. Спасибо - person acripps; 17.09.2008

Когда вы пытаетесь получить значение из TextBox? т. е. когда выполняется предоставленный вами пример кода?

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

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

person Adam Weber    schedule 17.09.2008
comment
Спасибо за ответ - это произошло из-за того, что сетка данных восстанавливалась при обратной передаче, но Арос пришел первым. ссылку проверю - person acripps; 17.09.2008