0

JSP struts 2 を使用して動的テーブル マネージャーを作成しており、バックエンドはプレーンな oracle DB です。

これですべて完了です。たとえば10のページ制限を設定すると、ページの変更時に次の10セットの行のみがフェッチされて表示されます。したがって、基本的にいつでも、ページには10行しかありません。ここで、このテーブル マネージャーに列機能による並べ替えを追加したいと思います。これは、列ごとに昇順または降順で並べ替えることができる Excel シートに似ています。

これを行うにはどうすればよいですか?

列がクリックされるたびに、アクションに移動し、昇順または降順で行をフェッチすると思っていました。

これが最適な方法ですか、それとも他に最適な解決策はありますか?

4

4 に答える 4

0

すべてのデータを JSON オブジェクトの形式で取得し、JavaScript を使用してテーブルを作成します (ロジックを使用してページネーションを提供することもできます)。テーブルを作成する関数を JavaScript で作成します。並べ替えが行われるたびに (asc または desc)、その特定の列で JSON オブジェクトを並べ替えます。次に、JavaScript で「テーブルの作成」関数を再度呼び出します。これにより、サーバー側の呼び出しまたはデータベースの呼び出しを行うことができなくなります。処理はクライアント側で行われるため、パフォーマンスが向上します。
ヒント: すべてのテーブル データを一度に取得し、フロントエンドに渡します。

更新:
json オブジェクトの並べ替え 'name' 属性に基づいてオブジェクトを並べ替える
var sortedArray = myArray.sort(function(a,b){
if (a.name < b.name)
return -1;
else if (a.name == b.name)
return 0;
else
return 1;
});

于 2013-02-06T05:30:35.960 に答える
0

テーブルのみを使用している場合は、以下のリンクを確認してください。Jquery データ テーブル プラグインです。ページネーション、ページごとの最大行数の選択、および列の並べ替えを提供します。

http://www.datatables.net/examples/

于 2013-03-13T04:09:50.040 に答える
0

以下は、あなたが取ることができる複数のアプローチです

  1. order by を使用して DB 内のデータを並べ替え、結果を表示します。これには、 DISPLAYTAGなどのストラットですでに利用可能な表示タグを使用できます。

2. Jquery の例のTableSorterのような JavaScript ライブラリを使用して HTML ページのテーブルを並べ替える

3.Dbからデータを1回フェッチしてセッションに保存し、 java.util.Comparator を使用してソートします:これを参照してください

于 2013-02-07T12:50:47.990 に答える
-1

ページングに独自のロジックを使用するか、struts2-jquery-grid-pluginsを使用してみてください。

このリンクは、アプリケーションでグリッドを使用する方法に関する完全なドキュメントです

http://code.google.com/p/struts2-jquery/wiki/GridTag

これは struts2-grid-plugin の動作デモです

http://struts.jgeppert.com/struts2-jquery-grid-showcase/index.action

ここからwarファイルまたはソースコードをダウンロードすることもできます http://code.google.com/p/struts2-jquery/downloads/list struts2-jquery-mobile-showcase-3.5.1.warを 見つける

于 2013-02-06T05:37:48.617 に答える