la mia soluzione globale rapida di 2 ¢:
(function () {
$('.table-responsive').on('shown.bs.dropdown', function (e) {
var $table = $(this),
$menu = $(e.target).find('.dropdown-menu'),
tableOffsetHeight = $table.offset().top + $table.height(),
menuOffsetHeight = $menu.offset().top + $menu.outerHeight(true);
if (menuOffsetHeight > tableOffsetHeight)
$table.css("padding-bottom", menuOffsetHeight - tableOffsetHeight);
});
$('.table-responsive').on('hide.bs.dropdown', function () {
$(this).css("padding-bottom", 0);
})
})();
Spiegazioni: quando viene mostrato un menu a discesa all'interno di un '.table-responsive', calcola l'altezza della tabella e la espande (con padding) in modo che corrisponda all'altezza richiesta per visualizzare il menu. Il menu può essere di qualsiasi dimensione.
Nel mio caso, questa non è la tabella che ha la classe '.table-responsive', è un div wrapping:
<div class="table-responsive" style="overflow:auto;">
<table class="table table-hover table-bordered table-condensed server-sort">
Quindi la $ table var nello script è in realtà un div! (giusto per essere chiari ... o no) :)
Nota: lo inserisco in una funzione in modo che il mio IDE possa comprimere la funzione;) ma non è obbligatorio!