0

私のjquery/datatableはゾーンにあります。イベントリンクの列があります。多くのレコードがあるため、多くのページがあります。たとえば、5 ページのイベントリンクを押してデータテーブルをリロードすると、1 ページに戻ります。現在のページである 5 ページに留まらせたいと思います。jquery で見つけた解決策は "bStateSave": true です。 . それを JSONObject getOptions() に入れてみましたが、うまくいきません。ページをタペストリーの現在のページにとどめるにはどうすればよいですか?

ここに私のtmlファイルがあります

<table width="100%" t:type="jquery/datatable" t:id="list" t:source="users" t:row="rowUser" t:options="options" t:add="action"  >
 <p:actionCell >
  <a t:type="eventLink" t:event="review" t:context="[rowUser.id]" href="#">Test</a>
 </p:actionCell >

ここに私のJavaファイルがあります

public JSONObject getOptions() {
    JSONObject options = new JSONObject();
    options.put("bJQueryUI", true);
    options.put("sDom", "<\"H\"lfr>t<\"F\"ip>");
    options.put("bStateSave", true);

    return options;
}

どんな助けでも大歓迎です。ありがとう。

4

3 に答える 3

2

イベントリンクは ajax ではない (「ゾーン」属性がない) ため、ページが更新され、データテーブルが再描画されます。

ページが再描画されないように ajax イベントリンクを使用することを検討しましたか?

イベント後にページを更新したい場合は、 @PageActivationContext または @Persist を使用して、リクエスト間で現在の行を保存する必要があります。jquery/datatable には詳しくありませんが、特定のページを指すようにウィジェットを初期化する方法があると確信しています。選択した行に基づいてページを計算する必要がある場合があります。

fnPageChange関数を使用して、現在のページをデータテーブルに設定できるようです。

于 2013-06-28T10:24:34.403 に答える
0

私はすでに答えを把握しています。bStateSave オプションを使用できますが、値は文字列でなければなりません。つまり、ブール値 true の代わりに「true」を使用する必要があります。

これが機能するコードフラグメントです

options.put("bStateSave", "true");

別の方法は、データテーブルを更新しないことです。

これはtmlで動作するコードフラグメントです

<a t:type="eventLink" t:event="review" t:context="[rowUser.id]" href="#" t:zone="^">Test</a>
于 2013-07-04T07:57:24.317 に答える