我已将jqgrid实现为。,
$(function () {
$("#accountHeadList").jqGrid({
//url: '../../jqGridHandler1.ashx',
url: '/Personalize/GetAccountHeads',
datatype: 'json',
width : 400,
height : 300,
colNames: ['name', 'value'],
colModel: [
{ name: 'name', width: 100, sortable: true },
{ name: 'value', width: 100, sortable: true },
],
rowNum: 10,
rowList: [10, 20, 30],
pager: '#gridPager',
viewrecords: true,
sortorder: 'asc',
multiselect: true,
caption: 'Account Heads',
});
$("#accountHeadList").jqGrid('navGrid', '#gridPager', { edit: false, add: false, del: false });
});
当我将JSON返回为。时,
{"rows":[{"id":0,"cell":["Accounts Receivable",""]},{"id":1,"cell":["Acd",""]},{"id":2,"cell":["Bank Accounts",""]},{"id":3,"cell":["Cash On Hand",""]},{"id":4,"cell":["Income Tax Payable",""]},{"id":5,"cell":["Interest Payable",""]},{"id":6,"cell":["Investment Premium Payable",""]},{"id":7,"cell":["Prepaid Expenses",""]},{"id":8,"cell":["Salary \u0026 Wage Payable",""]},{"id":9,"cell":["Salary Receivable",""]},{"id":10,"cell":["Short Term Borrowing",""]}],"page":1,"total":1,"records":10}
解析得很好而且我在网格中获取数据。如果。,如果我传递数据如下。,它无法加载数据,只是空的表格列出现在网格中,(但同一个没有行)。
{"rows":[{"id":0,"cell":{"name":"Accounts Receivable","value":null}},{"id":1,"cell":{"name":"Acd","value":null}},{"id":2,"cell":{"name":"Bank Accounts","value":null}},{"id":3,"cell":{"name":"Cash On Hand","value":null}},{"id":4,"cell":{"name":"Income Tax Payable","value":null}},{"id":5,"cell":{"name":"Interest Payable","value":null}},{"id":6,"cell":{"name":"Investment Premium Payable","value":null}},{"id":7,"cell":{"name":"Prepaid Expenses","value":null}},{"id":8,"cell":{"name":"Salary \u0026 Wage Payable","value":null}},{"id":9,"cell":{"name":"Salary Receivable","value":null}},{"id":10,"cell":{"name":"Short Term Borrowing","value":null}}],"page":1,"total":1,"records":10}
我可以看到{}
中[]
和cell
的区别,这可能是错误的根源。但为什么会这样呢?
答案 0 :(得分:1)
服务器应该以jqGrid期望数据的默认格式返回数据,或者您应该使用jsonReader通知jqGrid有关数据格式的信息。
在the feature request和the pull request中已经是jqGrid的一部分。因此,如果您使用当前版本的jqGrid,那么jqGrid仍然可以读取许多(但不是全部)错误的格式化的输入数据。无论如何,了解使用哪个版本的jqGrid 非常重要。
如果您更喜欢在服务器的JSON响应中使用对象形式的数据,那么服务器应该以
的形式返回rows
部分答案
"rows":[
{"id":0,"name":"Accounts Receivable","value":null},
{"id":1,"name":"Acd","value":null},
{"id":2,"name":"Bank Accounts","value":null},
...
]
("cell"
属性应删除)。如果使用不支持自动检测JSON输入数据的旧版jqGrid,则必须另外添加jsonReader: {repeatitems: false}
。