GRAILSUI Datatable - сохранение и восстановление состояния между вызовами - PullRequest
0 голосов
/ 10 ноября 2010

У меня есть дата, через которую пользователь может пейджировать и выбирать запись для отображения. Запись заменяет все данные с помощью Ajax-вызова на другую. На втором

datatable есть кнопкачтобы позволить вам вернуться к первому. В настоящее время, когда вы делаете это, вы возвращаетесь к началу первой таблицы. Что я хочу сделать, это сохранить состояние первого объекта данных (текущая страница, смещение, максимальное количество записей ..) когда запись выбрана, и я могу восстановить ее, когда они вернутся к ней .. На самом деле сохранение информации - это не такая большая проблема, как ее повторное применение, чтобы моя первая таблица была такой же, как пользователь оставил ее. ??

Я осмотрелся и нашел какой-то код ..

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 - это просто скрытые значения на странице, но я не могу заставить это работать, и я действительнонадеялся, что это будет достаточно быстро реализовано ..

Есть предложения?

TIA ..

1 Ответ

0 голосов
/ 11 ноября 2010

Для быстрого взлома вы можете сохранить часть параметров, отвечающую за состояние таблицы, из действия контроллера на стороне сервера, например:

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, конечно, должен быть одноэлементным илистойкий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...