代码之家  ›  专栏  ›  技术社区  ›  Garis M Suero

jqgrid未从json加载数据

  •  0
  • Garis M Suero  · 技术社区  · 14 年前

    我在我的网站上有一个jqgrid插件,表加载正常,但没有行可编辑、选择或其他。它正在请求服务器,因为当我查看日志时,我看到了请求和它的参数(sidx、_search、rows、sord、nd等)。

    这是jqgrid代码:

    $(document).ready(function() {
        var lastsel;
        jQuery("#rowed3").jqGrid(
                {
                    url : CONTEXT_PATH+'/ajax/getPartesByCategory.do?catid=<s:property value="categoryId" />',
                    datatype: 'json',
                    colNames : [ 'piezaId', 'descripcion', 'disponible'],
                    colModel : [ {
                        name : 'piezaId',
                        index : 'piezaId',
                        align : "right",
                        width : 40
                    }, {
                        name : 'descripcion',
                        index : 'descripcion',
                        width : 360,
                        editable : true
                    }, {
                        name : 'disponible',
                        index : 'disponible',
                        width : 80,
                        editable : true
                    } ],
                    rowNum : 20,
                    rowList : [ 20, 40, 60, 80 ],
                    pager : '#prowed3',
                    sortname : 'id',
                    viewrecords : true,
                    sortorder : "desc",
                    onSelectRow : function(id) {
                        if (id && id !== lastsel) {
                            jQuery('#rowed3').jqGrid('restoreRow', lastsel);
                            jQuery('#rowed3').jqGrid('editRow', id, true);
                            lastsel = id;
                        }
                    },
                    editurl : "server.php",
                    caption : "Piezas"
                });
        jQuery("#rowed3").jqGrid('navGrid', "#prowed3", {
            edit : false,
            add : false,
            del : false
        });
    })
    

    这是服务器返回的JSON:

    [{"piezaId":486,"disponible":1,"descripcion":"Asiento delantero LH","category":{"categoryId":2,"category":"Interior","status":1,"subCategories":[]}},{"piezaId":485,"disponible":1,"descripcion":"Asiento delantero RH","category":{"categoryId":2,"category":"Interior","status":1,"subCategories":[]}}]
    

    在服务器端,我使用Java6、Struts2和GSON编写JSON,但是对于这些Ajax调用,我只向响应写入一个文本/纯内容。

    有什么帮助吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Community Reversed Engineer    7 年前

    您应该更改从服务器发送的数据的格式,或者使用一些 jsonReader jsonmap 技术(参见示例 jquery with ASP.NET MVC - calling ajax enabled web service http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data Mapping JSON data in JQGrid )最简单的方法是生成可以用标准读取的数据 JSON阅读器 (见 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:检索数据json数据 ):

    {
      "total": "1", 
      "page": "1", 
      "records": "2",
      "rows" : [
        {"id" :"1", "cell":["486","1","Asiento delantero LH"]},
        {"id" :"2", "cell":["485","1","Asiento delantero RH"]},
      ]
    }