|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
маленькая тестовая задача на форме DataGridView и BindingNavigator Хочу обработать событие удаления строки, переспросить и при необходимости отменить удаление Повесил обработчик Ref_meta_tables.RowDeleting += Row_Deleting Внутри - безусловный пока вызов e.Row.RejectChanges() Нажимаю кнопку "удалить" в BindingNavigator/е Обработчик вызывается, мессадж выводится, но строка все равно удаляется Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 08:08 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
RejectChanges надо вызывать после удаления строки, в обработчике RowDeleting она еще не удалена, и отменять нечего. Как-то вот так (только в поле уровня класса хранить ссылку на удаленный DataRow). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 09:36 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
А я по простому, по рабоче-крестьянски Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 10:10 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
Cat2, мне нравится но ест вопрос у меня по любому exception вываливается такая хрень Как ее принято централизовано обрабатывать? ЗЫ: в Делфи было специальное исключение - abort - и оно никуда не вываливалось пользователю ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 10:59 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныRejectChanges надо вызывать после удаления строки, в обработчике RowDeleting она еще не удалена, и отменять нечего. Как-то вот так (только в поле уровня класса хранить ссылку на удаленный DataRow). так работает, но после отмены удаления переходит на следующую строку Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 11:23 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
В данном случае, наверное, чусше ловить попытки удалить строку на уровне UI - например, через DataGridView.UserDeletingRow . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 12:33 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныВ данном случае, наверное, чусше ловить попытки удалить строку на уровне UI - например, через DataGridView.UserDeletingRow .мне это не нравится, потому как еще есть навигатор, а его события никак не связаны с гридом ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 13:21 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
andreymxСон Веры ПавловныВ данном случае, наверное, чусше ловить попытки удалить строку на уровне UI - например, через DataGridView.UserDeletingRow .мне это не нравится, потому как еще есть навигатор, а его события никак не связаны с гридом У него есть свои собственные способы контролировать манипуляции с данными: BindingNavigator.DeleteItem . ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 13:36 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
Сон Веры Павловныandreymxпропущено... мне это не нравится, потому как еще есть навигатор, а его события никак не связаны с гридом У него есть свои собственные способы контролировать манипуляции с данными: BindingNavigator.DeleteItem .считаю неверным на одно событие делать обработки в разных местах а потом пользователь большую кнопку попросит - там тоже обрабатывать? Хотелось бы одно место найти приложения усилий ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 13:50 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
Коллеги, всем спасибо за варианты, у кого есть ещё, предлагайте, рассмотрю любые ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 14:29 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
andreymx, удаление дорогая и сложная операция (особенно если есть связи в датасет), потому по возможности не надо ее допустить так что надо отказ повесить на все кнопки и т.д. чтобы предотвратить удаление ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 14:38 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
andreymxКак ее принято централизовано обрабатывать? Аварийных завершений не должно быть! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 14:53 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
Cat2, спасибо, буду смотреть ViPRosandreymx, удаление дорогая и сложная операция (особенно если есть связи в датасет), потому по возможности не надо ее допуститьполностью согласен ViPRosтак что надо отказ повесить на все кнопки и т.д. чтобы предотвратить удалениеполностью не согласен ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:43 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
andreymxViPRosтак что надо отказ повесить на все кнопки и т.д. чтобы предотвратить удалениеполностью не согласен Ты можешь согласиться или нет, но придется, если будешь реально этим делом пользоваться такие попытки/намерения надо обрубить в зародыше, до запуска процесса ("удаление", в данном случае) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:58 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
andreymxполностью не согласен У винформсового DVG могут быть самые разные источники данных - например, реализации IList<T> (просто List<T>), у которого вообще нет никаких событий об изменении содержимого, и нет никаких никаких методов для отката таких изменений. И даже если его цеплять к DGV через BindingSource, то и это мало чем поможет. Поэтому в целях общности подхода я лично все такие проверки делаю на уровне UI, а не на уровне источника данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 17:00 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, серебряную пулю отливаете? Будет List, будем по другому. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
============= Для andreymx . Выкиньте Вы bindingNavigator. На основании длительных наблюдений над пользователями я выявил, что они не пользуются кнопками навигации. Им быстрее и привычнее прокрутить. Единственные полезные кнопки - Удалить и Сохранить. Лично мне удобнее сделать их как обычные кнопки, что бы не нужно было бороться с действиями по умолчанию кнопок навигатора. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 18:53 |
|
удаление строк с подтверждением
|
|||
---|---|---|---|
#18+
Ошибочка вышла Cat2 Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 18:55 |
|
|
start [/forum/topic.php?fid=20&fpage=28&tid=1399252]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 415ms |
0 / 0 |