Add an optional parameter for adjusting the height of the container for table rows manually. It is actual at least when using "angular-datatables v0.5.x" DataTables.net wrapper for AngularJS because it has specific layout.

pull/348/head
Alex 7 years ago
parent 17e901e928
commit 652507a0d9

@ -37,7 +37,7 @@
(function($){ (function($){
var PageResize = function ( dt ) var PageResize = function ( dt, pageResizeManualDelta )
{ {
var table = dt.table(); var table = dt.table();
@ -48,7 +48,8 @@ var PageResize = function ( dt )
footer: $(table.footer()), footer: $(table.footer()),
body: $(table.body()), body: $(table.body()),
container: $(table.container()), container: $(table.container()),
table: $(table.node()) table: $(table.node()),
delta: pageResizeManualDelta
}; };
var host = this.s.host; var host = this.s.host;
@ -71,6 +72,7 @@ PageResize.prototype = {
var rowHeight = $( 'tr', settings.body ).eq(0).height(); var rowHeight = $( 'tr', settings.body ).eq(0).height();
var availableHeight = settings.host.height(); var availableHeight = settings.host.height();
var scrolling = t.header().parentNode !== t.body().parentNode; var scrolling = t.header().parentNode !== t.body().parentNode;
var delta = settings.delta;
// Subtract the height of the header, footer and the elements // Subtract the height of the header, footer and the elements
// surrounding the table // surrounding the table
@ -85,6 +87,10 @@ PageResize.prototype = {
availableHeight -= offsetTop; availableHeight -= offsetTop;
availableHeight -= settings.container.height() - ( offsetTop + settings.table.height() ); availableHeight -= settings.container.height() - ( offsetTop + settings.table.height() );
if ( !isNaN( parseFloat( delta ) ) && isFinite( delta ) ) {
availableHeight -= delta;
}
var drawRows = Math.floor( availableHeight / rowHeight ); var drawRows = Math.floor( availableHeight / rowHeight );
if ( drawRows !== Infinity && drawRows !== -Infinity && if ( drawRows !== Infinity && drawRows !== -Infinity &&
@ -149,7 +155,7 @@ $(document).on( 'init.dt', function ( e, settings ) {
settings.oInit.pageResize || settings.oInit.pageResize ||
$.fn.dataTable.defaults.pageResize ) $.fn.dataTable.defaults.pageResize )
{ {
new PageResize( api ); new PageResize( api, settings.oInit.pageResizeManualDelta );
} }
} ); } );

@ -1 +1 @@
(function(t){var e=function(e){var a=e.table();this.s={dt:e,host:t(a.container()).parent(),header:t(a.header()),footer:t(a.footer()),body:t(a.body()),container:t(a.container()),table:t(a.node())};var o=this.s.host;"static"===o.css("position")&&o.css("position","relative"),this._attach(),this._size()};e.prototype={_size:function(){var e=this.s,a=e.dt,o=a.table(),i=t(e.table).offset().top,n=t("tr",e.body).eq(0).height(),s=e.host.height(),h=o.header().parentNode!==o.body().parentNode;h||(o.header()&&(s-=e.header.height()),o.footer()&&(s-=e.footer.height())),s-=i,s-=e.container.height()-(i+e.table.height());var r=Math.floor(s/n);r!==1/0&&r!==-(1/0)&&!isNaN(r)&&r>0&&r!==a.page.len()&&a.page.len(r).draw()},_attach:function(){var e=this,a=t("<object/>").css({position:"absolute",top:0,left:0,height:"100%",width:"100%",zIndex:-1}).attr("type","text/html");a[0].onload=function(){var t=this.contentDocument.body,a=t.offsetHeight;this.contentDocument.defaultView.onresize=function(){var o=t.clientHeight||t.offsetHeight;o!==a&&(a=o,e._size())}},a.appendTo(this.s.host).attr("data","about:blank")}},t.fn.dataTable.PageResize=e,t.fn.DataTable.PageResize=e,t(document).on("init.dt",function(a,o){if("dt"===a.namespace){var i=new t.fn.dataTable.Api(o);(t(i.table().node()).hasClass("pageResize")||o.oInit.pageResize||t.fn.dataTable.defaults.pageResize)&&new e(i)}})})(jQuery); (function(t){var e=function(e,a){var o=e.table();this.s={dt:e,host:t(o.container()).parent(),header:t(o.header()),footer:t(o.footer()),body:t(o.body()),container:t(o.container()),table:t(o.node()),delta:a};var i=this.s.host;"static"===i.css("position")&&i.css("position","relative"),this._attach(),this._size()};e.prototype={_size:function(){var e=this.s,a=e.dt,o=a.table(),i=t(e.table).offset().top,n=t("tr",e.body).eq(0).height(),s=e.host.height(),h=o.header().parentNode!==o.body().parentNode,r=e.delta;h||(o.header()&&(s-=e.header.height()),o.footer()&&(s-=e.footer.height())),s-=i,s-=e.container.height()-(i+e.table.height()),!isNaN(parseFloat(r))&&isFinite(r)&&(s-=r);var d=Math.floor(s/n);d!==1/0&&d!==-(1/0)&&!isNaN(d)&&d>0&&d!==a.page.len()&&a.page.len(d).draw()},_attach:function(){var e=this,a=t("<object/>").css({position:"absolute",top:0,left:0,height:"100%",width:"100%",zIndex:-1}).attr("type","text/html");a[0].onload=function(){var t=this.contentDocument.body,a=t.offsetHeight;this.contentDocument.defaultView.onresize=function(){var o=t.clientHeight||t.offsetHeight;o!==a&&(a=o,e._size())}},a.appendTo(this.s.host).attr("data","about:blank")}},t.fn.dataTable.PageResize=e,t.fn.DataTable.PageResize=e,t(document).on("init.dt",function(a,o){if("dt"===a.namespace){var i=new t.fn.dataTable.Api(o);(t(i.table().node()).hasClass("pageResize")||o.oInit.pageResize||t.fn.dataTable.defaults.pageResize)&&new e(i,o.oInit.pageResizeManualDelta)}})})(jQuery);
Loading…
Cancel
Save