6363'use strict' ;
6464
6565
66- var PageResize = function ( dt , pageResizeManualDelta )
66+ var PageResize = function ( dt , pageResizeManualDelta , pageResizeDrawPagingParameter , pageResizePreDrawCallback )
6767{
6868 var table = dt . table ( ) ;
6969
7070 this . s = {
71- dt : dt ,
72- host : $ ( table . container ( ) ) . parent ( ) ,
73- header : $ ( table . header ( ) ) ,
74- footer : $ ( table . footer ( ) ) ,
75- body : $ ( table . body ( ) ) ,
76- container : $ ( table . container ( ) ) ,
77- table : $ ( table . node ( ) ) ,
78- delta : pageResizeManualDelta
71+ dt : dt ,
72+ host : $ ( table . container ( ) ) . parent ( ) ,
73+ header : $ ( table . header ( ) ) ,
74+ footer : $ ( table . footer ( ) ) ,
75+ body : $ ( table . body ( ) ) ,
76+ container : $ ( table . container ( ) ) ,
77+ table : $ ( table . node ( ) ) ,
78+ delta : pageResizeManualDelta ,
79+ drawPagingParameter : pageResizeDrawPagingParameter ,
80+ preDrawCallback : pageResizePreDrawCallback
7981 } ;
8082
8183 var host = this . s . host ;
@@ -99,7 +101,9 @@ PageResize.prototype = {
99101 var rowHeight = rows . eq ( rows . length > 1 ? 1 : 0 ) . height ( ) ; // Attempt to use the second row if poss, for top and bottom border
100102 var availableHeight = settings . host . height ( ) ;
101103 var scrolling = t . header ( ) . parentNode !== t . body ( ) . parentNode ;
102- var delta = settings . delta ;
104+ var delta = settings . delta ;
105+ var pagingObject = { paging : settings . drawPagingParameter } ;
106+ var preDrawCallback = settings . preDrawCallback ;
103107
104108 // Subtract the height of the header, footer and the elements
105109 // surrounding the table
@@ -122,9 +126,10 @@ PageResize.prototype = {
122126
123127 if ( drawRows !== Infinity && drawRows !== - Infinity &&
124128 ! isNaN ( drawRows ) && drawRows > 0 &&
125- drawRows !== dt . page . len ( )
129+ drawRows !== dt . page . len ( ) &&
130+ ( ! preDrawCallback || preDrawCallback ( drawRows , dt . page . len ( ) , pagingObject ) !== false )
126131 ) {
127- dt . page . len ( drawRows ) . draw ( ) ;
132+ dt . page . len ( drawRows ) . draw ( pagingObject . paging ) ;
128133 }
129134 } ,
130135
@@ -182,7 +187,7 @@ $(document).on( 'init.dt', function ( e, settings ) {
182187 settings . oInit . pageResize ||
183188 $ . fn . dataTable . defaults . pageResize )
184189 {
185- new PageResize ( api , settings . oInit . pageResizeManualDelta ) ;
190+ new PageResize ( api , settings . oInit . pageResizeManualDelta , settings . oInit . pageResizeDrawPagingParameter , settings . oInit . pageResizePreDrawCallback ) ;
186191 }
187192} ) ;
188193
0 commit comments