Параметры сетки Ajax и postData
У меня проблема здесь, я использовал postdata для отправки параметров из файла ASPX в веб-сервис, без использования ajaxGridOptions: { contentType: 'application/json; charset=utf-8'}
,
Проблема в том, что сетка не отображает содержимое веб-сервиса, и как только мы используем это ajaxGridOptions: { contentType: 'application/json; charset=utf-8'}
Сетка не передает ни один из параметров в веб-сервис. Вот наш код jqgrid, пожалуйста, помогите
$(document).ready(function () {
var myGrid = $("#list");
myGrid.jqGrid({
url: '/priParentsContribution.asmx/getListOfTeachers',
datatype: 'json',
mtype: 'POST',
//ajaxGridOptions: { contentType: 'application/json; charset=utf-8'}
jsonReader: {
repeatitems: true,
root: "d.rows",
page: "d.page",
total: "d.total",
records: "d.records"
},
colModel: [{
name: 'feePurpose',
index: 'feePurpose',
width: 100,
editable: true,
edittype: 'select',
editoptions: {
value: "0:--Select--;Books:Books;Uniform:Uniform"
}
},
{
name: 'standard1',
index: 'standard1',
width: 100,
editable: true
}, {
name: 'standard2',
index: 'standard2',
width: 100,
editable: true
}, {
name: 'standard3',
index: 'standard3',
width: 100,
editable: true
}, {
name: 'standard4',
index: 'standard4',
width: 100,
editable: true
}, {
name: 'standard5',
index: 'standard5',
width: 100,
editable: true
}, {
name: 'standard6',
index: 'standard6',
width: 100,
editable: true
}, {
name: 'standard7',
index: 'standard7',
width: 100,
editable: true
}
],
forceFit: true,
rowNum: 10,
rowList: [10, 20, 30],
pager: "#pager",
viewrecords: true,
gridview: true,
width: 1200,
height: 300,
loadonce: true, //THIS IS IMPORTANT !!!
postData: {
advertiserID: function () {
return $("#advertiserId").val();
},
},
ajaxGridOptions: {
contentType: "application/json",
success: function (data, textStatus) {
if (textStatus == "success") {
var thegrid = myGrid[0];
thegrid.addJSONData(data.d);
thegrid.grid.hDiv.loading = false;
switch (thegrid.p.loadui) {
case "disable":
break;
case "enable":
$("#load_" + thegrid.p.id).hide();
break;
case "block":
$("#lui_" + thegrid.p.id).hide();
$("#load_" + thegrid.p.id).hide();
break;
}
}
}
},
ajaxGridOptions: {
contentType: 'application/json; charset=utf-8',
dataType: "json",
type: "POST",
cach: false
},
//rowNum: 100,
serializeGridData: function (postData) {
var propertyName, propertyValue, dataToSend = {};
for (propertyName in postData) {
if (postData.hasOwnProperty(propertyName)) {
propertyValue = postData[propertyName];
if ($.isFunction(propertyValue)) {
dataToSend[propertyName] = propertyValue();
} else {
dataToSend[propertyName] = propertyValue
}
}
}
return JSON.stringify(dataToSend);
}
});
$("#reload").click(function () {
myGrid.trigger("reloadGrid");
});
myGrid.jqGrid('navGrid', '#pager', {
edit: false,
add: false,
del: true,
search: false,
search: false,
view: false
});
myGrid.jqGrid('inlineNav', '#pager');
});
1 ответ
Вы должны добавить узлы: ajaxGridOptions в ваш объект параметров jqGrid.