私はjqGridベースのアプリケーションを持っていました。グリッドオプションではloadonce: true
、colModel
ではsortable: true, sorttype: 'text
を使用して、データグリッドでクライアント側のソートを可能にしています。しかし、データグリッドが再ソートされると、最後に選択された行は強調表示されなくなることがわかりました。私の質問は、どのように選択された行をデータの訴求を通して強調表示された状態に保つかです。jqGridでクライアント側のソート後に最後に選択した行を強調表示する方法は?
6
A
答えて
9
the small demo私はあなたのために行を選択しています。デモでは、selectionPreserverのコードを書き換え、reloadGridの使用時に追加のパラメータ:$("#list").trigger("reloadGrid", [{current:true}]);
を使用しました。詳細はthe answerを参照してください。
デモはonSortCol
イベントハンドラの内部で現在の選択を保存し、loadComplete
の内側にそれを復元:あなたが使用法を参照してくださいどのように
onSortCol: function() {
saveSelection.call(this);
},
loadComplete: function() {
restoreSelection.call(this);
}
は非常に簡単です、あなたはあなたのコードでそれを統合することができます。あなたの詳細な回答のため
var lastSelArrRow = [],
lastScrollLeft = 0,
lastSelRow = null,
saveSelection = function() {
var $grid = $(this);
lastSelRow = $grid.jqGrid('getGridParam', 'selrow');
lastSelArrRow = $grid.jqGrid('getGridParam', 'selrow');
lastSelArrRow = lastSelArrRow ? $.makeArray(lastSelArrRow) : null;
lastScrollLeft = this.grid.bDiv.scrollLeft;
},
restoreSelection = function() {
var p = this.p,
$grid = $(this);
p.selrow = null;
p.selarrrow = [];
if (p.multiselect && lastSelArrRow && lastSelArrRow.length > 0) {
for (i = 0; i < lastSelArrRow.length; i++) {
if (lastSelArrRow[i] !== lastSelRow) {
$grid.jqGrid("setSelection", lastSelArrRow[i], false);
}
}
lastSelArrRow = [];
}
if (lastSelRow) {
$grid.jqGrid("setSelection", lastSelRow, false);
lastSelRow = null;
}
this.grid.bDiv.scrollLeft = lastScrollLeft;
};
関連する問題
- 1. rstudioデータフレームビュー()の選択行を強調表示する方法は?
- 2. MvxListViewで選択したアイテムを強調表示する方法
- 3. * ngForで選択した行を強調表示する方法は?
- 4. ブートストラップscrollspyはロード後に最後のナビゲーションリンクボタンを強調表示します
- 5. 選択した行を強調表示する
- 6. 選択時にグリッド表示項目を強調表示する方法は?
- 7. PDF内のテキスト行を選択して強調表示する方法は? (iOS)
- 8. NSImageViewl強調表示/選択
- 9. jqueryで選択したグリッド行を強調表示
- 10. UIBarButtonItemはアンワインドセグを選択した後でも選択/強調表示されます
- 11. サブミット後に選択したオプション値を表示する方法
- 12. 選択を強調表示するためにUIViewをマスクする方法?
- 13. Xamarin.Mac - PDFファイルで選択したテキストを強調表示する方法
- 14. Recyclerビューで選択した項目を強調表示する方法
- 15. RecyclerViewで選択した項目を強調表示する方法
- 16. 角度4で選択したメニューを強調表示する方法
- 17. 最後のブランク行を考慮せずにjqGridをソートする方法
- 18. 選択したテキストをWebviewで強調表示します。 [Android]
- 19. プリファレンスヘッダーで選択したヘッダーを強調表示します
- 20. リストビューの選択を強調表示
- 21. pdfのリンクをクリックした後にテキストを強調表示
- 22. jqgridでリフレッシュ後に表示されるアイコンをソート
- 23. 編集後に選択した行をUITableで表示
- 24. JQuery jqgridがクライアント側でソートしない
- 25. ビューベースのNSTableView選択の強調表示
- 26. AndroidのListViewで選択した行を強調表示します。
- 27. Twitter Bootstrap Scrollspyは常に最後の要素を強調表示します
- 28. 選択したセルがある行の行ヘッダーを強調表示
- 29. ListView、選択したアイテムを強調表示する
- 30. 選択したコンポーネントを強調表示するVueJS
親愛なるオレグ、感謝:
saveSelection
とrestoreSelection
の実装は次のようです!それは素晴らしい!あなたのコメントによると、ソートがクライアント側で実行されていても、グリッドが再ロードされるという根本的な原因が判明しました。そのような選択はプログラム的に復元する必要があります。 –@ウィリアム・チェイ:ようこそ! – Oleg