Страница 1 из 1
StiMvcViewer: кастомизация обработки ошибок
Добавлено: 27 апр 2015, 09:46
DmitryRu
Есть ли возможность для компонента StiMvcViewer изменить логику обработки ошибок?
Как минимум, интересует обработка ошибки "Таймаут обращения к серверу".
У нас в приложении другой стиль обработки ошибок.
Нам нужно, при возникновении ошибки, вызвать свою функцию Javascript.
Хочется, вместо показа диалогового окна с кнопкой ОК, убрать с помощью Javascript весь графический интерфейс от StiMvcViewer, и нарисовать предложение пользователю "Отчет очень большой, давайте построим отчет позже и пришлем Вам на электронную почту"
Re: StiMvcViewer: кастомизация обработки ошибок
Добавлено: 27 апр 2015, 15:21
Vladimir
Здравствуйте Дмитрий,
Такая возможность есть. Для этого добавьте следующий код после объявления MVC Viewer:
Код: Выделить всё
<script type="text/jscript">
jsMvcViewer1.showError = function (text) {
if (text != null && text.substr(0, 6) == "Error:") {
alert("Отчет очень большой, давайте построим отчет позже и пришлем Вам на электронную почту");
return true;
}
return false;
}
</script>
Вместо alert() можно вызвать свою Javascript функцию, которая отобразит ошибку.
Для скрытия интерфейса вьювера, можно установить стиль display="none" для главного контейнера вьювера:
Код: Выделить всё
jsMvcViewer1.controls.viewer.style.display = "none";
Спасибо.
Re: StiMvcViewer: кастомизация обработки ошибок
Добавлено: 27 апр 2015, 16:35
DmitryRu
Спасибо, отличный совет!
Хотел бы уточнить, у меня эта функция, showError, похоже, вызывается и для штатного сценария: когда ошибки нет.
Да, для этого есть
Код: Выделить всё
if (text != null && text.substr(0, 6) == "Error:")
но хотелось бы уточнить, это так и задумано, что она вызывается и когда ошибки нет?
Скриншот панели разработчика с остановкой в штатной ситуации прикладываю, видно, что в параметре
text переданы нормальные данные
- showError.png (318.42 КБ) 2464 просмотра
Re: StiMvcViewer: кастомизация обработки ошибок
Добавлено: 28 апр 2015, 09:41
Vladimir
Здравствуйте Дмитрий,
Да, верно - в самой функции реализована проверка на ошибку. Если сервер возвращает строку, начинающуюся на "Error:", то предполагается что произошла ошибка. Функция должна вернуть true, если произошла ошибка, и false если ошибки не было - это используется для останова дальнейшей обработки ответа от сервера в случае ошибки.
Спасибо.