由 jqgrid 中的 getcol 函数返回的值



我有一个使用jqgrid的网格。我需要将url:返回的一些数据存储在局部变量中,以便我可以在subgrid中显示它。为此,我将该列添加为主网格中的隐藏列,其格式为 json

"Details":[{"Name":"ttt", "Quantity":"12"}] . 

然后在加载完成:函数中,我使用

var griddata = $("#grid').getCol('Details', false);

现在当我访问griddata[0]时,我得到了一个object对象。我试图解析它以正确获取值,但无济于事。我试过了:

griddata[0].Details.Name 

griddata[0].Details.0.Name 

griddata[0].Name, 

但都失败了。我想如果 getcol() 函数返回的数据,我错过了格式。我查找了有关该方法的文档,它说当我们指定 false 时它只返回值,但无法获得任何示例。
如果有任何示例或有任何指向解决方案的指针,将不胜感激。

如果您检查griddata[0]的类型(例如使用运算符typeof您将看到它具有string的类型 - 这是因为您获得的值是toString()您传递的对象的结果。原因是jqGrid处理值的方式。

如果要将 JSON 存储为值,则需要将其完全字符串化:

"Details": "[{"Name":"ttt", "Quantity":"12"}]"

现在,您可以将这些字符串值反序列化为如下所示的对象:

var griddata = $.map($("#grid").jqGrid('getCol', 'Details', false), function(value) { 
    return JSON.parse(value); 
});

之后,您可以按照所需的方式访问对象:

var name = griddata[0].Name;
var quantity = griddata[0].Quantity;

作为替代方法,您可以将对象拆分为两列,以便可以使用 getCol 直接访问这些值。

相关内容

  • 没有找到相关文章

最新更新