GRAILSUI数据表 - 在调用之间保存和恢复状态

时间:2010-11-10 08:04:32

标签: grails yui-datatable

我有一个数据表通过,用户可以分页并选择一个记录显示.. 该记录通过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只是页面上的hiden值,但是我无法使其工作,我真的希望它会相当快 实施..

有什么建议吗?

TIA ..

1 个答案:

答案 0 :(得分:0)

作为一个快速入侵,您可以从服务器端的控制器操作中保存负责表状态的params部分,例如:

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,当然,必须是单身或持久。