jqGrid:未捕获的TypeError:无法读取未定义的属性“模板”

时间:2014-06-14 10:45:36

标签: javascript jquery jqgrid

即使一切看起来都很好,我在标题上也会收到此错误:

<table id="kpi-grid"></table>
<script>
var kpi_grid = $("#kpi-grid");
$(document).ready(function() {
 $("#kpi-grid").jqGrid({
datatype: 'json'
, url: 'someurl' 
, colNames: ["x1", "x2"]
, colModel: [
    {name: "x1", width: 50 } 
    , {name: "x2", width: 140 } 
]
, ignoreCase: true 
, loadonce: true 
, contentType: "application/json" 
, jsonReader: { root: "rows", id: "id" } 
, gridView: true // <== Problem was here, should be gridview
, rownumbers: true 
, viewrecords: true 
, height: '100%' 
});
});
</script>

在jqGrid源上抛出错误的地方是:

for (i=0; i<ts.p.colModel.length;i++) {
    ts.p.colModel[i] = $.extend(true, {}, ts.p.cmTemplate, ts.p.colModel[i].template || {}, ts.p.colModel[i]);
    if (ts.p.keyIndex === false && ts.p.colModel[i].key===true) {
        ts.p.keyIndex = i;
    }
}

这个结构适用于我项目中的其他网格,但这个结构不起作用。

1 个答案:

答案 0 :(得分:1)

从jsonReader更改你的: { root: "rows", id: "id" } to { root: "rows", id: "id",repeatitems: false }。 repeatitems“元素告诉jqGrid行中数据的信息是可重复的 - 即元素具有单元格元素中描述的相同标记单元格。将此选项设置为false指示jqGrid按名称搜索json数据中的元素。”

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