0

我正在使用本地数据类型制作 jqgrid - 从服务器返回的 json 数组。

jQuery("#my_table").jqGrid(
                        { datatype: "local", 
                          colNames: ['ID', 'Name','Status', 'Date'],
                          colModel:[ {name:'id',index:'id', width:50, sorttype:"int"}, 
                                     {name:'name',index:'name', sorttype:"string"}, 
                                     {name:'status',index:'status', width:50, sorttype:"string"}, 
                                     {name:'date',index:'date', width:120, align:"left",sorttype:"date"} ], 
                          data: result,
                          ...});

但是,其中一列 - 状态 - 表示为数字。

我想将此数据显示为相应的字符串。例如,状态 = 1 的“活动”和状态 = 0 的“非活动”。

是否可以直接在 jqgrid 中执行此操作,例如作为附加 colModel 参数或 jqgrid 方法?我已经阅读了 jqgrid 的文档,但没有注意到解决这个问题的方法。

我不想更改从服务器返回的数据,因为我看不到传递冗余信息的任何意义。

如果我不必result直接在 javascript 中操作数组,我也会更喜欢,因为我没有看到遍历数组 2 次的意义(一次更改状态,第二次用于 jqgrid 加载)。

4

2 回答 2

3

您可以使用格式化程序:“选择”

{name:'status',index:'status', width:50, 
    formatter:'select', editoptions: {value:'0:Inactive;1:Active'}}
于 2012-05-22T11:06:32.960 回答
1

js代码中的某处:

var status_lines = ['Inactive', 'Active'];
function status_formatter(cellvalue, options, rowObject) {
    return status_lines[cellvalue];
}

然后在 colModel 中:

{name:'status',index:'status', width:50, sorttype:"string", formatter:status_formatter}

当然,formatter:function(c,o,r){...}如果你愿意的话,你可以在风格上做到这一点。

于 2012-05-22T11:00:25.103 回答