jqgrid工具栏搜索自定义格式列

时间:2012-12-15 13:47:21

标签: json jqgrid

我从API加载JQGrid,我的网格数据结构之一是格式化的JSON元素:

{"id":123,"name":"John Doe","username":"john.doe"}

数据在网格中正确显示,但是如果我尝试输入工具栏搜索,我不会得到匹配,大概是因为jqgrid仍然将上面的JSON存储为对象。

我的网格的截断版本如下:

$('#test').jqGrid({
...
loadonce: true,
datatype: 'local',
colModel: [
{name:'test', index:'test', label:'Test', formatter:customFormatter}
],
...
});

function customFormatter (cellvalue,options) {
                return cellvalue.name;
}

我发现这个post似乎解决了这个问题,但是我很难理解如何将它用于JSON对象。加载网格后,我没有看到为什么本地数据应该是除字符串以外的任何内容的原因(直到重新加载网格)。

2 个答案:

答案 0 :(得分:0)

在文档中遇到JSON点符号并将其添加到索引后,现在可以正常工作:

colModel: [
    {name:'test.name', index:'test.name', label:'Test'}
]

答案 1 :(得分:0)

您应该选择name colModel属性,该属性对应于JSON输入中属性的名称。因此只使用

原生
colModel: [
    {name: "name", label: "Name"}
    {name: "username", label: "User Name"}
]

如果确实需要将JSON输入中的某些名称重新映射到colModel中的其他名称,则应使用jsonmap属性。例如

colModel: [
    {name: "test1", label: "Name", jsonmap: "name"}
    {name: "test2", label: "User Name", jsonmap: "username"}
]

如果使用index,则无法使用name作为loadonce: true使用name不推荐使用具有.或任何其他meta-charactername属性值。存在限制是因为id属性将用于构建网格的许多元素的{{1}}属性。