jqGrid 4.13.6-pre - free jqGrid
Я использую navGrid и встроенное редактирование, и у меня возникают проблемы с сообщениями подтверждения форматирования, отправленными с сервера. Сообщения проверки корректны, когда они возвращаются из встроенного редактирования, но они не выглядят хорошо, когда в форме «Добавить/редактировать», доступ к которой осуществляется из навигации по сетке.JqGrid, как я могу форматировать сообщения об ошибках при использовании navGrid
Я читал много о событии errorTextFormat и, кажется, делает именно то, что хочу, но я не могу понять, как получить к нему доступ, когда форма открывается из сетки nav. Я уверен, что есть простой способ настроить его, но я не смог понять это.
$(function() {
var lastSel = 0;
$("#Grid")
.jqGrid({
url: '/url/to/griddata',
datatype: 'json',
mtype: 'POST',
colNames: ['Id', 'Name'],
colModel: [
{ name: 'Id', hidden: false, search: true, width: 150, align: 'center', sortable: true, editable: false, formatter: null, edittype: 'text' },
{ name: 'Name', hidden: false, search: true, width: 150, align: 'center', sortable: true, editable: true, formatter: null, edittype: 'text', editoptions: { maxlength: 256, value: null, required: true } }],
pager: '#GridPager',
prmNames: {
page: 'PageNumber',
rows: 'PageSize',
sort: 'SortColumn',
order: 'SortOrder',
search: 'Search',
nd: 'nd',
npage: 'null'
},
rowNum: 60,
rowList: [
15,
30,
60,
120
],
sortname: "Name",
sortorder: "asc",
viewrecords: true,
hidegrid: false,
gridview: true,
caption: '',
width: 980,
height: 100,
editurl: '/my/edit/url',
edit: {
errorTextFormat: function (data) {
alert('fired');
console.log(data);
return "error here";
}
},
jsonReader: {
total: 'TotalPages',
page: 'CurrentPage',
records: 'TotalRecords',
root: 'Rows',
id: 'Id',
repeatitems: false
},
onSelectRow: function(id) {
if (id && id !== lastSel) {
jQuery('#Grid').restoreRow(lastSel);
lastSel = id;
}
$('#Grid').jqGrid('editRow', id,
{
keys: true
});
}
});
$("#Grid").filterToolbar({ autosearch: true, searchOnEnter: false });
$("#Grid").navGrid('#GridPager', {
del: false, search: false, editerrorTextFormat: function (data) {
alert('fired');
console.log(data);
return "error here";
}
});
Вот разметка.
Пожалуйста, включайте фрагменты кода, которые показывают, как вы пытались использовать редактирование формы и обратный вызов 'errorTextFormat'. Типичная ошибка: включение обратного вызова в неправильном месте. Вы также должны всегда включать информацию о версии и вилке jqGrid, которую вы используете (или можете использовать). Существуют две основные вилки: [бесплатный jqGrid] (https://github.com/free-jqgrid/jqGrid), коммерческий [Guriddo jqGrid JS] (http://guriddo.net/?page_id=103334) и старый jqGrid в версии <= 4.7.Существуют * разные * возможности указать 'errorTextFormat' в jqGrid. – Oleg
Если вы ищете примеры использования 'errorTextFormat', вы можете найти дополнительную информацию [здесь] (http://stackoverflow.com/a/6803206/315935) и [здесь] (http://stackoverflow.com/a/14864422/315935). Если это не поможет, вы должны добавить свой вопрос с кодом JavaScript и примером ответа сервера, включая HTTP-код, который вы используете для возврата ошибок проверки с сервера. Ответ можно увидеть в Инструментах разработчика IE/Chrome/Firefox (вкладка «Сеть») или в [Fiddler] (http://www.telerik.com/fiddler). – Oleg
Я добавил javascript/разметку на вопрос. – James