-1

我已经将 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可能是故障的根源。但为什么会这样?

4

1 回答 1

1

服务器应该以 jqGrid 期望数据的默认格式返回数据,或者您应该使用jsonReader通知 jqGrid 您的数据格式。

功能请求拉取请求中已经是 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"属性应该被删除)。jsonReader: {repeatitems: false}如果您使用不支持自动检测 JSON 输入数据的旧版本 jqGrid,则必须另外添加。

于 2013-06-09T09:03:16.870 回答