/ / Jquery Datatable perde a barra de rolagem horizontal no redimensionamento - javascript, jquery, google-chrome, firefox, data

Jquery Datatable Perde barra de rolagem horizontal no redimensionamento - javascript, jquery, google-chrome, firefox, datatable

Eu tenho um problema intrigante que pensei ter resolvido com uma solução irregular, mas resolvi apenas pela metade. Estou usando o Datatables for Jquery e estou carregando dados de um banco de dados para preencher a tabela.

Devo notar que vem desenvolvendo usando o Firefox.

Além disso, tenho uma barra de rolagem horizontal eas cinco primeiras colunas são fixas. Isso representa um problema porque, antes de todos os dados serem carregados, a tabela de dados coloca uma barra de rolagem horizontal. Alguns dos dados carregados após a inicialização da barra de rolagem são mais longos e, assim, aumentam as larguras das colunas.

Para resolver isso, eu chamo de redimensionamento

<script type="text/javascript">
setTimeout(function(){
window.dispatchEvent(new Event("resize"));
},2000);
</script>

O que acontece aqui é que vejo a página carregar, oa tabela é inicialmente bagunçada, mas após um breve atraso (um pouco menos de 2 segundos, como deveria ser devido ao tempo que eu dediquei ao tempo limite), a tabela se corrige por causa do redimensionamento da janela.

Eu pensei que o problema estava resolvido, até começarteste no Chrome. A tabela será inicialmente desarrumada, assim como no Firefox, mas uma vez que o redimensionamento é chamado, a tabela se estende horizontalmente, perde a barra de rolagem horizontal e a janela do Chrome recebe uma. Isso não é ideal porque o objetivo da barra de rolagem é manter a tabela dentro da largura do tamanho da tela.

Para conter a largura da tabela, eu uso o seguinte CSS:

div.dataTables_wrapper{
width: 96vw;
margin: 0 auto;
}

Eu defino a tabela assim.

$(document).ready(function() {
$("#example").dataTable( {
"scrollX": true
} );
} );

new $.fn.dataTable.FixedColumns(example,{
leftColumns:5
});

Qualquer ajuda é apreciada.

Respostas:

0 para resposta № 1

Você tem que forçar o width do datatables_scrollBody para 100% a fim de manter a barra horizontal visível.

.dataTables_scrollBody {
width: 100%!important;
}