1

ここで同様の質問をいくつか見ましたが、実際に問題を解決するのに役立つものはありませんでした。

ページにテーブルがあり、クリック時にテーブルを再レンダリングする必要があるボタンがあります(さまざまなページネーションパラメーター、並べ替えなどを使用)。

私はいくつかのアプローチを試しましたが、組み込みの js ルーターを使用して値をコントローラーに渡すことに成功しましたが、値が ajax 呼び出しでバックエンドに渡されるため、テーブルを再レンダリングできません。

私の組み込みルーターは次のようになります。

@helper.javascriptRouter("jsRoutes")(
    routes.javascript.UserController.getUsers
)

そして、次のようなページから呼び出します: $.ajax(jsRoutes.controllers.UserController.getUsers(3, true, "login"));

最後になりましたが、getUsers() 呼び出しの結果でテーブルを再レンダリングしたいと思います。

単に呼び出す:

public Result getUsers(int size, boolean isAsc, String sortBy) {
    ......
    Logger.info("Returning " + size + " users");
    return Results.ok(usersPage.render(userDtos));
}

私にはうまくいきません。

4

1 に答える 1

0

いくつかのアプローチがあります。

最も簡単な方法は、テーブルを HTML でレンダリングする再生コントローラーを用意し、 $('#mytable').load(...)を使用してページにプルすることです。

より柔軟なのは、JSON 形式でデータを返し、ブラウザーで HTML に変換する再生コントローラーを用意することです。これは、クライアント側のテンプレート エンジン ( http://handlebarsjs.com/など) を使用するか、完全な JavaScript フレームワーク (AngularJS や Ember.js など) を使用して手動で行うことができます。

于 2015-01-19T14:40:22.633 に答える