我有一个数据表通过,用户可以分页并选择一个记录显示.. 该记录通过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 ..
答案 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
,当然,必须是单身或持久。