Вопрос по – Есть ли способ вызвать код позади enableModifiedFlag из CCSJ или SSJS?

4

Если я установил для свойства enableModifiedFlag значение true в моем пользовательском элементе управления; Я вижу следующий код внизу сгенерированного исходного кода страницы.

Все работает нормально, когда пользователь уходит с измененной страницы; они получают предупреждение «Несохраненные данные»;

<script type="text/javascript"> 

function view__id1__id2__id95__id98__id105_clientSide_onclick(thisEvent) {
return validateForm();

}

XSP.attachDirtyUnloadListener("This document may contain unsaved changes.");

XSP.addOnLoad(function() {
XSP.attachEvent("view:_id1:saveActionEventHandler", "view:_id1", "ondirtysave", null, true, 2);
XSP.attachEvent("view:_id1:_id2:_id95:_id98:_id105", "view:_id1:_id2:_id95:_id98:link1", "onclick", view__id1__id2__id95__id98__id105_clientSide_onclick, true, 2);
XSP.attachEvent("view:_id1:_id2:_id95:_id98:_id106", "view:_id1:_id2:_id95:_id98:link2", "onclick", null, true, 2);
XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:businessName11");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:businessName21");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:address11");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:address21");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:city1");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:cbState");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:zipCode1");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:phoneNumber1");

}); 

</script>

У меня есть кнопка «Выход» с SSJS, которая разблокирует документ, если он заблокирован, и создает context.redirectToPage. Проблема в том, что эта кнопка не вызывает код, лежащий в основе логики enableModifiedFlag, поэтому пользователи покидают страницу без запроса, если они хотят уйти с несохраненными данными.

Есть ли способ вызвать код позади enableModifiedFlag от этой кнопки, используя CCSJ или SSJS?

Ваш Ответ

2   ответа
3

XSP._setDirty(false,"") Это сделает документ грязным и позволит пользователю перейти на другую страницу.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded PSolano
Error: User Rate Limit Exceeded PSolano
6

XSP._isDirty() от CSJS вы можете получитьtrue если какое-либо поле было изменено илиfalse если в вашу форму не было внесено никаких изменений.

Поэтому я добавил этот блок кода к моей кнопке в CSJS, чтобы отобразить то же предупреждение по умолчанию из XPages:

if (XSP._isDirty()){
    if (confirm ("Are you sure you want to navigate away from this page?" + "\n" + "\n" +
    "This document may contain unsaved changes." + "\n" + "\n" +
    "Press OK to continue, or Cancel to stay on the current page.")){
        return true;
    }else{
        return false;
    }
} else {
    return true;
}
Error: User Rate Limit Exceeded

Похожие вопросы