Отображать хорошее сообщение об ошибке, когда что-то не так после ajax-запроса jqgrid
Я удаляю строки с помощью этой функции:
function deleteRow(){
rows = jQuery("#category_grid").getGridParam('selarrrow');
if( rows.length>0){
jQuery('#category_grid').delGridRow(rows,{
msg:'Verwijderen geselecteerde rijen?'
});
}else{
alert("Selecteer eerst een rij om te verwijderen!");
}
}
но когда это терпит неудачу в моем php, серверная сторона и исключение выдается. Сообщение об ошибке выглядит не красиво. Как я могу показать errotext в диалоговом окне? или поймать сообщение об ошибке после вызова ajax?
На данный момент сообщение об ошибке выглядит так: Состояние ошибки: "CDbException". Код ошибки: 500
Когда я погуглил, я обнаружил событие функции delGridRow, которое называется errorTextFormat. Это событие, где я ищу? Может кто-нибудь дать мне пример реализации этого мероприятия?
Привет
Нильс
1 ответ
Второй параметр delGridRow
это объект с опциями, так что вы можете сделать следующее
jQuery('#category_grid').delGridRow(rows,{
errorTextFormat: function (data) {
if (data.responseText.substr(0, 6) == "<html ") {
return jQuery(data.responseText).html();
}
else {
return data.responseText;
// or
// return "Status: '" + data.statusText + "'. Error code: " +data.status;
}
}
});
Текст retText
, который вы отдаете errorTextFormat
функция будет размещена в соответствующем div
сообщения об ошибке в отношении jQuery.html(retText)
код внутри delGridRow
функция.
Кстати я не звоню delGridRow
функционировать напрямую. Вместо этого, если я добавлю панель навигации в jqGrid относительно navGrid
функция, я даю errorTextFormat
Функция в качестве параметра для стандартной "Удалить кнопку". Чтобы быть точным, я делаю это в отношении $.jgrid.del
:
jQuery.extend(jQuery.jgrid.del, {
ajaxDelOptions: { contentType: "application/json" },
mtype: "DELETE",
reloadAfterSubmit: false,
jqModal: false,
serializeDelData: function (postdata) {
return "";
},
errorTextFormat: function (data) {
if (data.responseText.substr(0, 6) == "<html ") {
return jQuery(data.responseText).html();
}
else {
return "Status: '" + data.statusText + "'. Error code: " + data.status;
}
}
});
(настоящий код моего errorTextFormat
выглядит немного сложнее, но идея использования такая же).