2

カスタムフォーマッタを使用して、保存ボタンがクリックされた場合にのみ保持されるブール値のチェックボックスを表示するjqgridを一度ロードしました。ただし、ソートがクリックされるたびに、すべてのチェックボックスのチェック状態が保持されません。

jQuery("#list2").jqGrid({
    url:myurl,
    datatype: "json",
    loadonce: true,
    colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
    colModel:[
        {name:'id',index:'id', width:55},
        {name:'isChecked',index:'isChecked', width:90, formatter:chkFmatter},
        {name:'name',index:'name asc, invdate', width:100},
        {name:'amount',index:'amount', width:80, align:"right"},
        {name:'tax',index:'tax', width:80, align:"right"},      
        {name:'total',index:'total', width:80,align:"right"},       
        {name:'note',index:'note', width:150, sortable:false}       
    ],
    rowNum:10,
    rowList:[10,20,30],
    pager: '#pager2',
    sortname: 'id',
    viewrecords: true,
    sortorder: "desc",
    caption:"JSON Example"
});
jQuery("#list2").jqGrid('navGrid','#pager2',{edit:false,add:false,del:false});

function chkFmatter(cellvalue, options, rowObject) {
    // do something here to format column
    return new_format_value
}

とにかく、並べ替えやページングなどのときにクリックされたチェックボックスを保持できることはありますか?

4

1 に答える 1

2

グリッドにバインドされているデータが更新されていないため、新しいリクエスト(ページング、並べ替えなど)には、プロパティがバインドされていた元の状態が反映されます。チェックボックスの状態が変化して実際のデータを更新し、これを反映するのが最善の策です。

getGridParamを使用して、グリッドにバインドされているデータを取得できます。

var data = $('#' + gridid).jqGrid('getGridParam', 'data');

次に、ROWID、列の名前、および値を使用してデータオブジェクトを更新します。

data[row - 1][columnname] = value;
于 2012-06-19T13:50:44.223 に答える