1

だから私はjqgridを持っていて、カスタムフォーマッタを使用して列をフォーマットします.とにかく、列の頭をクリックしてソートすると、期待どおりに列がソートされますが、私が行ったフォーマットが削除され、代わりに「[オブジェクトオブジェクト]」が配置されますフォーマッタが作業を行ったはずの列に。

特定のフォーマッタは次のとおりです。

function(cellVal, options, rowObject){
    var optsURI = '../webrelease/common/images/page_v2_u'+(rowObject.opt2Up==2?1:0)+'_s'+(rowObject.optDuplex?1:0)+'_c'+(rowObject.optColor?1:0)+'_52.png';
    return $('<img class="finishing_icon" height="40" src="'+optsURI+'" />').attr('jobid', rowObject.jobid).click(finishingOptsCycle);
}

これは行の削除と追加にはうまくいくようですが、リゾートを押すとすぐに列が画像から文字列に変わります [object Object]

これを解決する方法についてのアイデアはありますか?

完全を期すために、ここに私のjqgrid全体を示します(行とフォーマッターを除く):

grid.jqGrid({
    datatype: "local",
    editurl: "clientArray",
    width: 680,
    height: 290,
    colNames: [...],
    colModel: [...],
    hidegrid: false,
    shrinkToFit:false,
    multiselect: true,
    scroll:1,
    loadui: "block",
    loadtext: "Loading job list...",
    caption: 'Job List <img class="refreshbutton" width="20" height="20" src="../webrelease/desktop/images/icon_circle_arrow_right.png" />',
    pager: '#jqgrid_pager',
    onSelectRow: rowSelect,
    onSelectAll: allRowsSelect
});
4

1 に答える 1

2

この問題の原因は、カスタム フォーマッタの使用方法が間違っていることです。カスタム フォーマッタを実装する関数は、stringを返す必要があります。

id本当に必要でない場合は、グリッドの要素に属性を割り当てることはお勧めしません。<img>IDを使用する必要がある理由がわかりません。

セルをクリックしたときにカスタムアクションを実装する必要がある場合は、コールバック<img>をより適切に使用できonCellSelectます。

カスタムフォーマッタunformatを使用する同じ列にまだ実装していない場合は、これを行うことをお勧めします。

于 2012-06-14T08:10:39.620 に答える