0

我有一个以以下格式返回 JSON 的服务器:

[{"Name": "Student1", "Email": "Email1", "CellPhone": null},
{{"Name": "Student2", "Email": "Email2", "CellPhone": null}]

HTML 文件有: <table id="list1></table> <div id="pager1"></div>

JS文件是:

jQuery().ready(函数 () {
    jQuery("#list2").jqGrid({
        url: 'Default.aspx?query=SELECT VALUE s FROM ModelContainer.StudentSet AS s WHERE s.Name = \'Student2\'',
        数据类型:“json”,
        colNames:['姓名','电子邮件'],
        col型号:[
            { 名称:'名称',索引:'名称',宽度:200 },
            { 名称:'电子邮件',索引:'电子邮件',宽度:500 }
        ],
        行数:10,
        行列表:[10,20,30],
        寻呼机:'#pager1',
        排序名称:'名称',
        观看记录:真实,
        排序顺序:“desc”,
        标题:“JSON 示例”,
        jsonReader:{
            重复项目:真实,
            编号:“0”,
            细胞: ””,
            //根: ””,
            记录:函数(obj){
                返回 obj.length;
            }
        }
    });
    jQuery("#list1").jqGrid('navGrid','#pager1',{edit:false,add:false,del:false});
});

由于我的 JSON 已经是所需数据的根,我不知道该root列是什么。我试过不写任何关于 root 的东西,或者root: "",也没有输出。但 firebug 显示 JSON 被正确接收。

我不知道这是否与根有关。有什么建议吗?

4

2 回答 2

3

您可以使用

jsonReader: {
    repeatitems: false,
    id: "0",
    root:  function (obj) {
        return obj;
    },
    records: function (obj) {
        return obj.length;
    },
    page: function () {
        return 1;
    },
    total: function () {
        return 1;
    }
}

但是要使您提出的代码正常工作,您必须修复更多错误:

  • HTML 片段
<table id="list1></table> <div id="pager1"></div>

应固定为

<table id="list1"></table> <div id="pager1"></div>
  • jQuery("#list2").jqGrid({应该固定为jQuery("#list1").jqGrid({
  • {由于一个不需要的字符,必须修复 JSON 数据以消除语法错误。正确的数据可以
[{"Name": "Student1", "Email": "Email1", "CellPhone": null},
 {"Name": "Student2", "Email": "Email2", "CellPhone": null}]

固定演示有效。

于 2012-06-29T05:39:10.853 回答
0

据我所知,我们需要在 jsonReader 中设置 JSON 对象名称,如下所示:

jsonReader: {
            repeatitems: true,
            id: "0",
            cell: "",
            rows : "details",
            page : "pageno"
            }

JSON 格式:

 {"pageno":"1", "details" : [{"Name": "Student1", "Email": "Email1", "CellPhone": null},   
    {{"Name": "Student2", "Email": "Email2", "CellPhone": null}] 

jsonreader 选项:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data

于 2012-06-29T03:03:53.230 回答