Показать сообщение отдельно
Старый 14.04.2018, 00:57   #8  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от wojzeh Посмотреть сообщение
validateDelete не вызывает проблем - зовёшь ты его или нет. прочитай уже ВНИМАТЕЛЬНО, что написано.

конкретно в данной ситуации всё более чем кошерно:

- отключаем валидацию на форме, чтоб не задавать вопроса о подтверждении, как доктор прописал;
- перед непосредственным удалением методом delete проверяем, всё ли в порядке табличным валидатором;

описанный подход - просто сказка!

теоретическая дискуссия о том, что можно и нельзя, всегда упирается в конкретные потребности бизнеса и наши возможности их реализовать.

можешь привести конкретный пример, где, как ты это называешь, "хакерство" приводит к плачевным последствиям?
Например вызов табличного валидатора в методе delete источника данных

(1)_ds.delete() --> (2)_ds.validateDelete() --> (3) table.validateDelete() --> (4) table.delete().

Согласен что отключение super в (2) _ds.validateDelete() для отключения диалога - нормальный ход который по идее прерывает эту цепочку. Но судя по всему мы не контролируем эту цепочку в случае deleteMarked.

deleteMarked() не вызывает _ds.delete(), а используется вместо. Что за цепочку методов он там использует - непонятно.

Почему не вызывать табличный (3) table.validateDelete() на уровне таблицы в (4) table.delete()?
Можно добавить if (.dataSource() && ) если нужно такое ограничить вызовами с формы.