ant design pro テーブルソート(3回クリック可能)
2022-02-25 14:51:21
1. まず、column属性に追加します。
sorter: true
{
title: 'flowmeterCode',
dataIndex: 'flowmeterCode',
hideInForm: true,
ellipsis: true,
sorter: true
}
sorter: true
{
title: 'flowmeterCode',
dataIndex: 'flowmeterCode',
hideInForm: true,
ellipsis: true,
sorter: true
}
3つのタップでもう1つのテーブルチェンジが必要です。
tableChangeは、以下のようにテーブルのソートが変更されたときに、テーブルを再読み込みします。
const tableChange = (pagination: any, filters: any, sorter: any) => {
if (sorter.order === undefined) {
setSorterOrder(undefined)
actionRef.current?.reload()
}
else {
setSorterOrder(sorter)
}
}
リクエストは以下の通りです。
判定を追加する
if (params.sorter ! = undefined && sorterOrder ! = undefined) {
params["sorter"] = JSON.stringify(params.sorter)
}
else {
params["sorter"] = "{}";
}
<イグ
2. バックエンド処理
フロントエンドから渡された、ソートが必要なパラメータを取得する必要があります。ここでは、一般的なツールのメソッドを紹介します。
* Table sorting
*
* @param tableMap
* @param sorterBy Default sort by this property
* @return
*/
public static Sort sortAttr(Map<String, String> tableMap, String sorterBy) {
Sort sort;
if (tableMap.get(Constants.SORTER) ! = null && !Constants.EMPTY_SORTER.equals(tableMap.get(Constants.SORTER))) {
JSONObject sorter = JSONObject.parseObject(tableMap.get(Constants.SORTER));
Iterator<String> iterator = sorter.keySet().iterator();
String sortAttr = iterator.next();
if (Constants.ASCEND.equals(sorter.get(sortAttr))) {
sort = new Sort(Sort.Direction.ASC, sortAttr);
} else {
sort = new Sort(Sort.Direction.DESC, sortAttr);
}
} else {
sort = new Sort(Sort.Direction.DESC, sorterBy);
}
return sort;
}
Pageableでソートする。
Pageable pageable = PageRequest.of(current - 1, pageSize, Utils.sortAttr(tableMap,Constants.GMT_MODIFIED));
<イグ
関連
-
"Undefined symbols for architecture x86_64:" エラーを解決しました。
-
Reactネイティブの開発で遭遇するいくつかのポットホール
-
C++ ベクトル検索エラー: 'find(std::vector<int>::iterator, std::v)' の呼び出しにマッチする関数がありません。
-
[エラー] '{' トークンの前に期待される式
-
Androidのパッケージ名変更とパッケージ名エラーに対応するクライアントが見つからない場合の解決策
-
Linux: [Errno 12] メモリを割り当てられない問題を解決する。
-
id 'com.android.library' を持つプラグインが見つかりません。
-
VM21248:1 Uncaught ReferenceError: xxx is not defined エラーを解決する。
-
Pythonの一般的なエラーとデバッグ方法 (2)
-
ADODBのExecuteメソッドです。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Uncaught SyntaxError: 位置1でJSONの予期しないトークンoは、問題が解決されました。
-
メールサーバーの問題点まとめ
-
IIS 7.5上のASP.NET 4.0とチャートに関する質問
-
JavaScriptで不正なappendChildを解決する方法
-
ArrayAdapterはリソースIDがTextViewである必要がある問題について
-
Eigen::Block... ...削除された関数を参照しようとしています Solution
-
比較方式が一般契約に違反する場合 解決策
-
linux reports error is not a directory
-
cygwin many commands show command not foundの解決策。
-
ディープラーニングノートカタログ(Enda Wu) - ついに翻訳版登場