2016-10-17 2 views
0

私は、従業員のリスト(従業員名、指定、部、ステータス)を表示するgspフォームを持っています。これらの列はすべてソート可能です。私のコントローラクラスで特定のアクションを呼び出した後(つまり、従業員のステータスをアクティブから非アクティブに変更したり、その逆に変更した場合)、並べ替えが妨げられます。私は 特定のアクション後のソートの保持 - Grails

String strSort = params.sort ?: "empId"; 
    strSort += " " 
    strSort += params.order?: "asc"; 

DB

から取得しているときに、私は「ステータス変更」アクションを投稿する前にあったソート順を保持することができますどのような方法がありますソートする次のコードを使用していますか?それが達成される方法であれば?

+0

あなたがそうでなければ、何かを示唆することは困難である、あなたの行動(コントローラメソッド)を示さなければなりません。 –

+0

ステータスはどのように変更されますか?画面を開いたり、何かをクリックしてjquery(ajax)経由でコントローラ/コントローラに要求を送信すると、何かがリストを更新してしまいます。または物理的に状態の更新をコントローラーアクションに掲示します。コントローラのアクションでは、リストでページを更新しますか? – Vahid

+0

@vahid私はコントローラにajax経由でリクエストを送信し、更新されたステータスでempリストを返送するステータスアイコンをクリックしています。しかし、このアクションの後、以前の並べ替え順序が乱された – SK01

答えて

0

私はそれを行うには、2つの方法を考えることができます。

  • は、あなたの行動にごソート順とパラメータを渡し、結果をバック を送信します。

  • 更新するたびに両方のパラメータをセッションに保存します。

このような何か保存し、セッションの使用からretriveするには:あなたは新しい/別の種類のパラメータを受け取った場合、あなたがセッションに保存し

private DEFAULT_SORT = 'myDefaultSort' 

def myAction() { 
    if (params.sort && params.sort != session.getAttribute('sort-' + actionName)) { 
     session.setAttribute('sort-' + actionName, params.sort) 
    } 
    params.sort = session.getAttribute('sort-' + actionName)?:DEFAULT_SORT 
    ... 
    //Your existing logic 
} 

を。セッションから既存のパラメータをロードしようとすると、値が格納されていないとデフォルト値が取得されます。

+0

現在のセッションの並べ替えと並べ替えパラメータを取得してコントローラに渡す方法を教えてください。 – SK01

+0

@AnithaKamatchi私は自分の答えを更新しました。 – rvargas

+0

@AnithaKamatchiこの答えを見て、まさにあなたが必要とするものです。http://stackoverflow.com/a/40151111/3897206 – rvargas

0

rvargasが示唆しているように、さまざまな方法で可能です。 queuekit pluginはまだ適切にリリースされていないので、あなたが作業しているGrails 3/grails2ブランチをクローンして、テストサイトをクローンしてプラグイン内でこのコンセプトを混乱させることができます:

short separate out your search featureが必要です。セッション値でこれを行うことも、サブセットリストの繰り返しとして送信することもできます。

私はセッションを使用しないことに決めました。その後、私はここに他の操作を行うには非常にそれを終わらせるrelistsので不要で、(削除するには、IDも)bean is bound back in with the request sent

を削除]をクリックしたときに:私はAjaxのreloadPageを呼び出すとき

最も重要なビットがされていませんか、さらにポストアクシデントdeleteによって使用される私はserialize search formです。実際の検索オブジェクトは、tidy manner here

に保存されていますが、これが複雑すぎる場合は、非常にコントローラのリンクでセッション検索がコメントアウトされています。私はあなたがこの複雑さをすべて忘れることができると思うし、コントローラのxhrである場合のように_listテンプレートをレンダリングするsearchAgain()機能を持たせて、バインドする代わりにsession.searchマップをバインドし、このルートは、あなたはおそらく、あなたが理解するのに役立ちますfrom g:render to g:include action="searchAgain"

希望を変更したい、より良い

関連する問題