2010-11-10 114 views
0

我有一个数据表,用户可以通过它查看和选择显示的记录.. 该记录通过Ajax调用 替换整个数据表。第二GRAILSUI Datatable - 调用之间的保存和恢复状态

数据表是一个按钮,让您重返第一。目前,当你 做,你将返回到第一个表格的开始..我想要做的是 店第一的状态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 
     }); 

其中偏移和max在页面上只是隐伏值,但我不能得到这个工作,我真的希望它会要合理快速地执行 ..

有什么建议吗?

TIA ..

回答

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

相关问题