Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > сохранить результат редактирования грида


Автор: kulibin 28.4.2006, 19:44
такая проблемка: если при редактировании записи в datagridview юзер без перехода на другую строку закрывает форму - то не сохраняются результаты редактирования этой строки. я обновляю данные в бд адаптером при закрытии формы. что-то не получается сохранить строку эту. пробовал акцептченжес - потом понял, что при этом просто теряются сведения о том, что строка вообще изменялясь. пробовал EndEdit. До сих пор мне кажется что он должен бы сохранять результаты редактирования - токо не сохраняется по прежнему нифига smile. Там вроде ещё коммит какой-то имеется - тоже нифига smile.
подскажите плз как это разрулить. 

Автор: mr.DUDA 4.5.2006, 10:22
Это общая проблема у гридов, она связана с сырой реализацией механизма data binding в .NET, имхо. Неоднократно сталкивался с ней, работая с DevExpress-овскими гридами, да и в стандартных ту же картину наблюдаю. В общем, лечится это только с пом. метода EndCurrentEdit у CurrencyManager. 

Автор: kulibin 4.5.2006, 10:41
а кто такой "CurrencyManager"? smile. Зачем он нужен? 

Автор: kulibin 4.5.2006, 11:09
не понял что такое CurrencyManager и зачем он нужен.
вот как я решил проблемку эту:
Код

//завершаем редактирование в гриде:
dgv.EndEdit();
//завершаем редактирование в дататейбл, данные которой отображает грид:
((DataRowView)dgv.CurrentRow.DataBoundItem).Row.EndEdit();

я раньше пытался только первое действие делать - не получалось. теперь понял, что надо оба действия делать - и тогда всё нормательно фунциклирует.

да - зачем всётаки нужен этот CurrencyManager? интересно просто. хотя мне и без него как-то нормально работается вроде.
да - и про сырость  data binding в .NET smile - вскрытие показало что это не правда smile
вообще пока во 2-м фреймворке токо один раз натыкался на то, что может сырым показаться: упорно не хотел скрываться столбец в гриде при загрузке формы. причём на форме было два грида - и в первом нормально тем же способом три столбца пряталось(.visible=false). а во втором ничего полезного та же инструкция не делала - причём ошибки тоже не выдавала. я так и не понял в чём прикол был - и кто виноват - я или билл smile. думаю всёже что это мой бок. в причине я так и не разобрался - просто сделал скрытие этого столбца на уже видимой форме - работает. 

Автор: mr.DUDA 4.5.2006, 11:15
Цитата(kulibin @  4.5.2006,  10:09 Найти цитируемый пост)
да - зачем всётаки нужен этот CurrencyManager? интересно просто. хотя мне и без него как-то нормально работается вроде.

CurrencyManager позволяет получить редактируемую строку в гриде.

Цитата(kulibin @  4.5.2006,  10:09 Найти цитируемый пост)
да - и про сырость  data binding в .NET  - вскрытие показало что это не правда 

возможно 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)