jqGrid - JSON在jsonReader中没有'rows'数据时出错

时间:2013-05-22 11:44:09

标签: jquery json jqgrid

将jqGrid与Fusion Tables一起使用,如果JSON返回结果它可以正常工作,但如果没有结果,那么因为obj.rows不存在,所以在尝试检查长度时页面会中断。有没有办法优雅地处理这个问题?

jsonReader: {
            cell: "",
            page: function (obj) { return 1; },
            total: function (obj) { return 1; },
            records: function (obj) { return obj.rows.length; } 

        },

未捕获的TypeError:无法读取未定义的属性“长度”

和JSON:

// API callback
jQuery16405104181477800012_1369220882365({
 "kind": "fusiontables#sqlresponse",
 "columns": [
  "id",
  "latitude",
  "longitude",
  "name",
  "address_line_1",
  "address_line_2",
  "address_line_3",
  "postcode"
 ]
}
);

及以下是行的结果示例:

jQuery1640010438381228595972_1369222778703({
 "kind": "fusiontables#sqlresponse",
 "columns": [
  "id",
  "latitude",
  "longitude",
  "name",
  "address_line_1",
  "address_line_2",
  "address_line_3",
  "postcode"
 ],
 "rows": [
  [
   "1132584",
   50.55307,
   "-4.19639",
   "The Road",
   "ROAD",
   "Town",
   "CITY",
   "POSTCODE"
  ],

2 个答案:

答案 0 :(得分:0)

我认为您可以将records功能修改为

records: function (obj) {
    return obj.rows != null ? return obj.rows.length : 0;
} 

答案 1 :(得分:0)

我有完全相同的问题,

我创建了一个显示jqgrid的div但你必须创建一个表。

我做到了,它奏效了! :)