Подскажите, каким образом можно найти и переопределить обработчики событий стандартных контролов(например, кнопки Сохранить)?
Возможно ли изменить их стиль?
По сути это две задачи:
1) Изменить стиль (BasePageV2CSS)
2) Изменить обработчики (метод onCardAction, который вызывается при нажатии на кнопку "Сохранить")
В карточке редактирования wnd_...Edit предлагается выделять Caption визуальных контролов для полей Dataset-а с признаком "Только для чтения" цветом, отличающимся от цвета остальных полей, например, зеленым, или выставлять IsEnabled = false.
Если заголовки (Caption) визуальных контролов для полей с признаком "Только для чтения" и для других полей имеют один и тот же цвет, то пользователь постоянно путается при вводе данных.
Вот пример решения:
//Модуль scr_BaseDBEditUtils
function ProcessBaseDBEditOnPrepare(Window, BaseDBEdit){
...
/* Добавляем строчку в функцию... */
SetCaptionColorForIsReadOnlyFields(Window);//Устанавливает цвет для полей с признаком "Только чтение"}//Устанавливает цвет для полей с признаком "Только чтение"
function SetCaptionColorForIsReadOnlyFields(Window){for(var i =0; i < Window.ComponentCount; i++){if(!IsUndefined(Window.Components(i).DataField)){if(Window.Components(i).DataField.IsReadOnly){//Можно включить выделение цветом --> Window.Components(i).CaptionColor = clReadOnlyCaptionColor;
Window.Components(i).IsEnabled=false;}}}}
Добрый день, Петр.
В карточках редактирования элементы, поля которых имеют признак ReadOnly, отображаются серым цветом.
Если Вашим пользователям недостаточно базового отображения ReadOnly полей, то можно пойти и тем путем, который Вы описали. Действительно хороший вариант!