Никак не соображу.
Есть деталь в разделе, там кнопка Добавить. По ней вызывается страница редактирования записи детали.
Надо в этом процессе проверить некое условие и в зависимости от него либо продолжать, либо выдать сообщение пользователю и закрыть страницу.
Что типа такого в PageLoadComplete мне видится
//продолжаем штатно
}else{
MessageToUser ("НИЗЗЯ ТЕБЕ!!!");
Page.Close();
}
Нравится
А зачем вообще доходить до открытия ...EditPage? Можно написать свой обработчик для кнопки "Добавить" в ...GridPage. Обычно обработчики кнопок в гриде сделаны на JS из соображений оптимизации, но вполне можно написать обычный кусочек БП, который открывает или не открывает окно, в зависимости от условия.
Александр, зависит от того, какие условия Вы проверяете, и когда эти условия инициализируются.
В Вашем случае, видимо, они передаются из родительского окна. В таком случае можно делать проверку на Init.
Ну до этого я допер, что на Init. А как мне что то сказать пользователю и остановить процесс открытия страницы редактирования, вот чего я никак не допру.
И кстати, если через Init, то как мне достучатся до родительской записи для этой детали?
Ну то есть проверку надо делать в событии по клику на кнопке Добавить.
Но мне надо обращаться к текущей записи в основном реестре раздела.
Как до нее добраться, кнопка то в реестре детали.....
Разобрался, на событии нажатия на кнопку параметр
SelectedNodePrimaryColumnValue содержит Id выбранной в основном реестре записи
Возникла другая проблема.
Повесил на событие AddButtonClick свой скрипт таск:
Теперь в скрипте проверяю все что мне надо, но!, как мне прервать процесс?!!
return false;
не помогает, все равно открывается страница редактирования записи, так как отрабатывает родительский процесс базовой страницы реестра....
Решил проблему:
1. Скрываем стандартную кнопку Добавить
2. Добавляем свою кнопку Добавить
3. На событие клика своей кнопки Добавить вешаем скрипт с проверкой нужного нам условия и в соответствии с этим заполняем параметр процесса.
4. Добавляем условные потоки управления в зависимости от значения параметра.
5. Не забываем сгенерировать сообщение "AddButtonClick" в родительский процесс по нужному нам условию.
6. Наслаждаемся :-)
Да, всё правильно. При желании можно ещё показать сообщение при отрицательном значении условия. И из двух условных потоков всё же лучше один сделать по умолчанию (не с ромбиком, а с чертою).
"Шамуилов Александр" написал:1. Скрываем стандартную кнопку Добавить
Можно было просто убрать логику из метода GetRegisterAddPageScript, тогда
"Шамуилов Александр" написал: все равно открывается страница редактирования записи
не должно происходить.