0

ユーザーがページングして表示するレコードを選択できるデータテーブルがあります..レコードは、Ajax呼び出しを介してデータテーブル全体を別のデータテーブルに置き換えます..

データテーブルは、最初のテーブルに戻るためのボタンです..現在、そうすると、最初のテーブルの先頭に戻ります..私がしたいのは、最初のデータテーブルの状態を保存することです(現在のページ、オフセット、 max records .. ) レコードが選択されたとき、彼らが戻ってきたときにそれを復元できる..実際に情報を保存することはそれほど問題ではありません-再適用する方法であるため、最初のテーブルはユーザーが残したままです.??

私は周りを見回して、いくつかのコードを見つけました..

YAHOO.util.Event.onDOMReady(function(e) {

      var offset =  new YAHOO.util.Element('offset').get('value');
      var max =  new YAHOO.util.Element('max').get('value');

      var state = GRAILSUI.receiptBatchList.getState();
      state.sorting = state.sortedBy;
      state.pagination.recordOffset = offset;
      state.paginator.rowsPerPage = max;

      var query = GRAILSUI.receiptBatchList.buildQueryString(state);

      GRAILSUI.receiptBatchList.getDataSource().sendRequest(query,{
        success : GRAILSUI.receiptBatchList.onDataReturnReplaceRows,
        failure : GRAILSUI.receiptBatchList.onDataReturnReplaceRows,
        scope  : GRAILSUI.receiptBatchList,
        argument: state
      });

ここで、offset と max はページ上の非表示の値にすぎませんが、これを機能させることができず、かなり迅速に実装できることを本当に望んでいました..

助言がありますか ?

ティア..

4

1 に答える 1

0

簡単なハックとして、次のように、サーバー側のコントローラーアクションから、テーブルの状態を担当するパラメーターの部分を保存できます。

def list = {

  Map savedState = userService.currentUser.tableStates['MyController']
  if (savedState) {
    params << savedState
  }

  // ... list instances

  Map tableState = params.subMap(['max', 'offset', 'sort', 'order']) // add your filtering param name if you do some filtering
  userService.currentUser.tableStates['MyController'] = tableState
  // ... return instances
}

currentUser確かに、シングルトンまたは永続的でなければなりません。

于 2010-11-11T09:22:06.377 に答える