Flexigrid:リフレッシュを生き残るための行の選択
-
27-09-2019 - |
質問
私はプロジェクトでFlexigridを使用しています。グリッドがさわやかになった後、選択した行を保持できるようにしたいと思います。 Flexigridディスカッションボードで同じ質問をしましたが、この答えが得られました。
クリックハンドラーを追加し、選択した行の行IDの場合はIDを保存します。更新完了時に、再び行を選択します(まだ存在する場合)
これを進める方法がわからないので、関数がどのように見えるかさえわからないので、開始するコードがありません。
誰かが私を正しい方向に向けることができれば、大いに感謝されます。
ありがとう、
クリスティアン。
解決
私は、ページネーションの間と更新中に複数選択を維持するために小さなコードを作成しました。
$("#searchPhonoList").flexigrid($.extend({}, flexigridAttrs, {
url: './rest/phono/search',
preProcess: formatSearchPhonoResults,
onSuccess: successSearchPhono,
onSubmit: submit,
method: 'GET',
dataType: 'json',
colModel : [
{display: 'titre', name: 'titre_brut', width : 240, sortable : true, align: 'left'},
{display: 'version', name: 'version_brut', width : 60, sortable : true, align: 'left'}
],
height: "auto",
sortname: "score",
sortorder: "desc",
showTableToggleBtn: false,
showToggleBtn: false,
singleSelect: false,
onToggleCol: false,
usepager: true,
title: "Liste des candidats",
resizable: true,
rp:20,
useRp: true
}));
var searchPhonoListSelection = new Array();
$('#searchPhonoList').click(function(event){
$(' tbody tr', this).each( function(){
var id = $(this).attr('id').substr(3);
if ( searchPhonoListSelection.indexOf(id) != -1 ) {
searchPhonoListSelection.splice(searchPhonoListSelection.indexOf(id), 1);
}
});
$('.trSelected', this).each( function(){
var id = $(this).attr('id').substr(3);
if ( searchPhonoListSelection.indexOf(id) == -1 ) {
searchPhonoListSelection.push(id);
}
});
});
function successSearchPhono() {
$("#searchPhonoList tbody tr").each( function() {
var id = $(this).attr('id').substr(3);
if ( searchPhonoListSelection.indexOf(id) != -1 ) {
$(this).addClass("trSelected");
}
});
}
他のヒント
Flexigridは、呼ばれるクラスを追加します trSelected
選択した行には、グリッドでクリックイベントが発生するたびに、選択したすべての行を探して、何らかの方法で保存することができます。以下は、あなたができることの簡単な例です。
var selectedRows = new Array();
$('#myGrid').click(function() {
selectedRows = new Array();
$(this).find('tr.trSelected').each(function(i, selectedRow) {
selectedRows.push($(selectedRow));
});
});
所属していません StackOverflow