【问题标题】:JqGrid not able to bind JSON data with "dot"JqG​​rid 无法将 JSON 数据与“点”绑定
【发布时间】:2015-05-15 08:36:17
【问题描述】:

我有一个来自服务器的 JSON 响应,我正在尝试绑定到 JQgrid。但是,响应是一个 JSON 字符串,具有“点”作为对象名称的一部分。我无法让 JQGrid 使用“点”

这是我面临的问题的示例小提琴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"  
});

如小提琴所示,即使在使用 jsonmap 时,我也无法绑定属性“cluster.first”。而如果属性名称是“位置纬度”,则网格可以正常工作。

让我知道我做错了什么。

【问题讨论】:

  • 你可以发布模型数据吗?
  • 小提琴链接有我用于测试的示例模拟数据

标签: javascript jqgrid


【解决方案1】:

原因很简单。如果在 jqGrid 4.6 中使用 datatype: "local",属性 jsonmap 将被忽略。我改变了free jqGrid 中的行为(参见the wiki)。因此,一种可能的解决方案是使用免费的 jqGrid 4.8 或更高版本而不是 jqGrid 4.6。

解决问题的更简单方法是使用datatype: "jsonstring"。可以验证

$("#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"
});

http://jsfiddle.net/OlegKi/rpdfrb0L/5/。您还可以看到,我将所有colModel 项目的name 属性更改为内部没有点。我建议始终遵守规则。

【讨论】:

  • 还要补充一点,如果使用jsonstring,那么数据应该通过datastr属性提供
  • @RamanathanMuthuraman:是的,当然,请参阅我的答案代码。 datatype: "jsonstring" 的输入是 datastr,它可以包含对象,而不仅仅是 JSON 字符串。
  • 谢谢,我能够使用最新的资源让它工作。如果我需要动态绑定列标题和数据,同样的事情会起作用吗?
  • @SharathChandra:不客气!抱歉,但我不明白您在“动态绑定列标题和数据”下的意思。你说的是哪种绑定?您的问题是关于阅读数据。列标题中的文本与数据的读取无关。
  • @Oleg,我在小提琴中显示的示例响应来自服务器。根据我正在尝试动态创建网格的响应(使用 colName 和 colModel)。尝试绑定对象具有“点”的 colModel 时遇到问题。此处附上示例onedrive.live.com/redir?resid=CC616714B2E0FBD9%212788>
猜你喜欢
  • 2013-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多