minha solução global rápida de 2 centavos:
(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);
})
})();
Explicações: Quando um menu suspenso dentro de um '.table-responsive' é mostrado, ele calcula a altura da tabela e a expande (com preenchimento) para corresponder à altura necessária para exibir o menu. O menu pode ser de qualquer tamanho.
No meu caso, esta não é a tabela que tem a classe '.table-responsive', é uma div envolvente:
<div class="table-responsive" style="overflow:auto;">
<table class="table table-hover table-bordered table-condensed server-sort">
Portanto, a $ table var no script é na verdade uma div! (só para ficar claro ... ou não) :)
Nota: Eu envolvo em uma função para que meu IDE possa reduzir a função;) mas não é obrigatório!