[英]Jqgrid not binding data
我從WebService得到Json響應,如下所示
Json完美地返回了數據。 數據看起來像
{ “d”: “[{\\” ID \\ “:2,\\” 代碼\\ “:\\” mycode的\\ “\\ ”名稱\\“:\\ ”的Myname \\“,\\ ”密碼\\“:\\” A \\ “\\ ”ClientLevel \\“:0,\\ ”DEPTNO \\“:\\ ”\\“ \\ ”DEPTNAME \\“:\\ ”\\“},{\\ ”ID \\“:3,\\ ”代碼\\“:\\” mycode \\“,\\” Name \\“:\\” liy1 \\“,\\” PassWord \\“:\\” mypassword \\“,.......但未綁定我的jqgrid。
我有以下Jqgrid代碼
jQuery("#list2").jqGrid({
mtype: 'POST',
url: "myservice.asmx/GetQueryInfo",
serializeGridData: function (postData) {
return JSON.stringify({
TableNames: TableName,
ColumnList: ColumnNames
});
},
ajaxGridOptions: { contentType: "application/json; charset=utf-8" },
jsonReader: {
repeatitems: false,
root: 'd',
page: function (obj) { return 1; },
total: function (obj) { return 1; },
records: function (obj) { return obj.toString().length; }
},
datatype: 'json',
colNames: ['ID', 'Code', 'Name', 'PassWord', 'ClientLevel', 'DeptNo', 'DeptName'],
colModel: [
{ name: "ID", width: 55 },
{ name: "Code", width: 90 },
{ name: "Name", width: 100 },
{ name: "PassWord", width: 80 },
{ name: "ClientLevel", width: 80 },
{ name: "DeptNo", width: 80 },
{ name: "DeptName", width: 150 }
],
autoencode: true,
gridview: true,
rowNum: 10,
loadonce: true,
rowList: [10, 20, 30],
pager: '#pager2',
sortname: 'ID',
viewrecords: true,
sortorder: "ID",
caption: "JSON Example",
loadError: function (jqXHR, textStatus, errorThrown) {
alert('HTTP status code: ' + jqXHR.status + '\n' +
'textStatus: ' + textStatus + '\n' +
'errorThrown: ' + errorThrown);
alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText);
}
});
jQuery("#list2").jqGrid('navGrid', '#pager2', { edit: false, add: false, del: false });
我仍然認為您在服務器端使用舊代碼( WebMethod
返回字符串而不是對象),因為d屬性的值是字符串。 您可以將jsonReader
root用作答案中定義的函數。 在這種情況下,它也適用於您的情況。 所以你可以使用
jsonReader: {
repeatitems: false,
root: function (obj) {
return typeof obj.d === "string" ? $.parseJSON(obj.d) : obj.d;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.