JqG​​rid无法使用" dot"

时间:2015-05-15 08:36:18

标签: javascript jqgrid

我有来自服务器的JSON响应,我试图绑定到JQgrid。但是,响应是JSON字符串有" dot"作为对象名称的一部分。我无法让JQGrid与" dot"

以下是我面临的问题http://jsfiddle.net/sharathchandramg/rpdfrb0L/2/

的示例小提琴
$("#grid").jqGrid({
data: data,
datatype: "local",
height: 250,
colNames: ['Name', 'Cluster', 'Location'],
colModel: [{
    name: 'name',
    width: 120
}, {
    name: 'metrics.cluster.first.value',
    width: 60,
    jsonmap: function (obj) {

        return obj.metrics['cluster.first'].value
    }
}, {
    name: 'metrics.location-latitude.value',
    width: 60
}, ],
caption: "Example"  
});

如图所示,我无法绑定属性" cluster.first"甚至在使用jsonmap时。如果属性名称是" location-latitude"网格工作正常。

让我知道我做错了什么。

1 个答案:

答案 0 :(得分:2)

原因很简单。如果在jqGrid 4.6中使用egen group = group(id date2) bysort id (group): gen clust2 = sum(group != group[_n-1]) ,则将忽略属性jsonmap。我更改了free jqGrid中的行为(请参阅the wiki)。因此,一种可能的解决方案是使用免费的jqGrid 4.8或更高版本而不是jqGrid 4.6。

解决问题的另一种简单方法是使用datatype: "local"。您可以验证

datatype: "jsonstring"

http://jsfiddle.net/OlegKi/rpdfrb0L/5/。您还可以看到我更改了所有$("#grid").jqGrid({ datastr: data, datatype: "jsonstring", height: "auto", colNames: ['Name', 'Cluster', 'Location'], colModel: [{ name: 'name', width: 120 }, { name: 'metrics_cluster_first_value', width: 60, jsonmap: function (obj) { return obj.metrics['cluster.first'].value } }, { name: 'metrics_location_latitude_value', jsonmap: 'metrics.location-latitude.value', width: 60 }], caption: "Example" }); 项的name属性,以便内部没有点。我建议始终遵守规则。