Добрый день!
Подскажите, пожалуйста, как можно скриптом закрыть модальное окно?
Пробовал Self.Close() - не реагирует.
Нравится
Дмитрий, зависит от того, в каком скрипте Вы вызываете
Self.Close();
Попробуйте еще
Window.Close();
Также, если есть условия, при которых выполняется закрытие. проверьте, выполняются ли они.
У меня при открытии террасофта открывается модальное окошко с двумя кнопками. При нажатии на любую из кнопок окно должно закрыться. Скрипт на кнопке:
function btnOfficeOnClick(Control) { var CurrentDate = GetLocalDate(); var ContactID = Connector.CurrentUser.ContactID; AddRecordInWhereWorks(ContactID, CurrentDate, of_Head); Self.Close(); }
Self.Close() выполняется, но ничего не происходит.
Объекта Window у меня нет.
Получилось закрыть на событии OnTimer как описано в http://www.community.terrasoft.ru/forum/topic/7327
Здравствуйте!
У меня та же проблема. Хочу, чтоб окно окно wnd_DateReportFilter закрывалось по одной из кнопокOK или отмена. Открыл его как модальное.
var FilterForm = Services.GetNewItemByUSI('wnd_DateReportFilter');
FilterForm.ShowModal();
Окно открывается, но свойство IsModal остается false.
Для кнопок прописываю события:
function btnOKOnClick(Control) {
Control.ParentWindow.ModalResult = wmrOK;
Control.ParentWindow.Close();
}
function btnCancelOnClick(Control) {
Control.ParentWindow.ModalResult = wmrCancel;
Control.ParentWindow.Close();
}
События отрабатывают, но окно остается открытым, закрывается оно только "крестиком", при этом свойство ModalResult после закрытия остается 2, как будто кнопка ОК не нажималась.
Следуя вашим рекомендациям вставил таймер:
function TimerOnTimer(Timer) {
if (ShowWindow){
Self.Close();
}else{
Timer.IsEnabled = false;
}
}
Таймер срабатывает сразу после открытия и выдается ошибка: "ShowWindow - определение отсутствует".
Здравствуйте, Владимир!
Уточните, пожалуйста, какая у Вас версия Террасофт?
Владимир, измените код таким образом:
function btnCancelOnClick(Control) { Control.ModalResult = wmrCancel; Control.ParentWindow.Close(); }