0

ローカルのデータ型(サーバーから返されたjson配列)を使用してjqgridを作成しています。

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つ(ステータス)は数値で表されます。

このデータをそれぞれの文字列として表示したいと思います。たとえば、ステータス= 1の場合は「アクティブ」、ステータス=0の場合は「非アクティブ」です。

これをjqgridで直接行うことは可能ですか?たとえば、追加のcolModelパラメーターまたはjqgridメソッドとして行うことができますか?jqgridのドキュメントを読みましたが、この問題に対処する方法に気づきませんでした。

サーバーから返されるデータを変更したくありません。冗長な情報を渡す意味がないからです。

resultまた、配列を2回トラバースする意味がわからないため(1回はステータスを変更し、2回目はjqgridの読み込み)、javascriptで配列を直接操作する必要がない場合も優先します。

4

2 に答える 2

3

フォーマッターを使用できます: "select"

{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 に答える