0
Пожалуйста, помогите. У меня есть поиск старых вопросов, но я не могу найти соответствующее решение.JQGrid - сетка показывает, но данные не загружаются
Нажмите на кнопку, которую показывает сетка, но данные не загружаются.
моего веб réponse:
{"d":"{"totalpages":2,"currpage":1,"totalrecords":15,"rows":[{"id":"110","cell":["110","perform action 1"]},{"id":"112","cell":["112","perform action 2"]},...]}"}
мой код JQuery:
$("#b4").click(function() {doAjax4();});
function doAjax4() {
$.ajax({
async: false, cache: false,
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebAction.aspx/GetDataTable",
data: "{}",
datatype: "json",
success: function (data) {
$("#mygrid1").jqGrid({
dataType: "json",
type: "POST",
colNames: ['runid', 'action'],
colModel: [{ name: 'runid', index: 'runid' }, { name: 'action', index: 'action' }],
jsonReader: {
root: "rows",
page: "currpage",
total: "totalpages",
records: "totalrecords",
id: "id",
cell: "cell",
repeatitems: true
},
loadonce: true,
viewrecords: true,
gridview: true,
rowList: [5, 10, 50],
caption: "Action Table",
height: 'auto',
//pager: '#pager',
emptyrecords: 'No data for the applied filter'
});
},
error: function (xhr, type, exception) {
alert(xhr.statusText);
}
})
}
благодарит за быстрый ответ & подробный ответ. ** Выполненные изменения - он работает с использованием jsonstring, но я хочу использовать тип данных: «json» & jsonReader. Можно или подход неправильного **
Исправления: 1. Теперь возвращаясь GetDataTable объекта 2. опечатки скорректированной на DATATYPE: "" JSON 3. удалены асинхронными: ложные 4.с успехом, до $ ("# mygrid1"). jqGrid ({...}); добавлен $ ("# mygrid1"). trigger ('reloadGrid'); \t 5. Вариант jqgrid (a), опечатанный в виде данных: «json». (b) опечатка, скорректированная на mtype. (c) добавлен url: «WebAction.aspx/GetDataTable» 6. set datatype: «jsonstring», datastr: data.d. –
@BipoK: Добро пожаловать! Вы можете удалить внешний '$ .ajax' и использовать jqGrid с параметрами' datatype: "json", mtype: "POST", url: "WebAction.aspx/GetDataTable" '. Вам нужно только изменить 'jsonReader', чтобы использовать префикс' d.' во всех верхних элементах: 'jsonReader: {страница:" d.currpage ", всего:" d.totalpages ", записи:" d.totalrecords ", root:" d.rows "}' – Oleg
Еще раз спасибо. Ваши ответы здесь и во многих других SO всегда были полезны. Ваши ответы предоставили решение. Мне также пришлось добавить еще 2 варианта. Правильно ли это использование? добавлены опции [1] 'ajaxGridOptions: {contentType: 'application/json; charset = utf-8 '} 'и [2]' serializeGridData: function (postdata) {return null;} ' –