dataTables分页页码缓存、搜索缓存问题

由于设置s tateSave参数为true, dataTables每次分页信息从web store中获取,导致表格展现出错误的页码(上一次请求页码)。
解决办法: s tateSave:false。
代码分析:
[javascript]  view plain  copy
 
  1. if ( oInit.bStateSave )  
  2. {  
  3. features.bStateSave = true;  
  4. _fnLoadState( oSettings, oInit );  
  5. _fnCallbackReg( oSettings, 'aoDrawCallback', _fnSaveState, 'state_save' );  
  6. }  

--------------------------------------------------------------------------------------------------------------------------------
_fnLoadState()函数分析:
[javascript]  view plain  copy
 
  1. //从缓存中取上次页码信息(state),  
  2. var state = settings.fnStateLoadCallback.call( settings.oInstance, settings );  
  3. if ( ! state || ! state.time ) {  
  4. return;  
  5. }  
  6.   
  7. //state与ajaxData封装成新setttings,setting中包含:dataTables所有参数数据、ajaxData数据、当前分页信息等。  
  8. // Restore key features - todo - for 1.11 this needs to be done by  
  9. // subscribed events  
  10. settings._iDisplayStart    = state.start;  
  11. settings.iInitDisplayStart = state.start;  
  12. settings._iDisplayLength   = state.length;  
  13. settings.aaSorting = [];  
  14.   
  15. _fnCallbackFire( settings, 'aoStateLoaded''stateLoaded', [settings, state] );  
 

--------------------------------------------------------------------------------------------------
_fnSaveState(stttings)函数分析
[javascript]  view plain  copy
 
  1. // bStateSave=true,取出缓存state.否则直接返回  
  2. if ( !settings.oFeatures.bStateSave || settings.bDestroying )  
  3. {  
  4. return;  
  5. }  
  6.   
  7. /* Store the interesting variables */  
  8. var state = {  
  9. time:    +new Date(),  
  10. start:   settings._iDisplayStart,  
  11. length:  settings._iDisplayLength,  
  12. order:   $.extend( true, [], settings.aaSorting ),  
  13. search:  _fnSearchToCamel( settings.oPreviousSearch ),  
  14. columns: $.map( settings.aoColumns, function ( col, i ) {  
  15. return {  
  16. visible: col.bVisible,  
  17. search: _fnSearchToCamel( settings.aoPreSearchCols[i] )  
  18. };  
  19. } )  
  20. };  

猜你喜欢

转载自it1990eye0920.iteye.com/blog/2356244