J'ai une table dans un modal de bootstrap. Le contenu que je peuplé à l'intérieur des cellules de données est assez grand, et au lieu d'envelopper le texte pour s'adapter à la table à l'intérieur du modal, il déborde du modal, comme il est incapable de prendre la largeur modale et d'envelopper le texte.
Capture d'écran: strong> p> P> J'ai essayé diverses solutions, telles que la spécification de l'enveloppement CSS ainsi que la spécification de la largeur de table (en% et px) et de régler la propriété de largeur sur la table (en% et px), mais il n'y a absolument aucun changement à la table. . Tout conseiller sur la manière de corriger ce problème serait grandement apprécié. P> function showQuestions(quiz_id)
{
$('#questions_quiz_id').val('quiz_id');
window.questionsTable.fnClearTable();
$.post('{{ url("getGameQuestions") }}', {quiz_id : quiz_id})
.done(function(data)
{
if (typeof(data.error) != 'undefined')
{
$('#error-msg').html(data.error);
$('#page-error').fadeIn(300).delay(2000).fadeOut(500);
}
else
{
for(var d in data)
{
var question = data[d];
var active = (question.active == undefined || question.active == false) ? "Inactive" : "Active";
var ai = window.questionsTable.fnAddData([
question.code,
question.title,
question.instruction,
question.extract,
active,
'<i class="icon-pencil" style="cursor:pointer; color:#E48A07;" title="Edit" onclick="setQuestion('+question.id+')"></i>'
]);
var oSettings = window.questionsTable.fnSettings();
var addedRow = oSettings.aoData[ai[0]].nTr;
addedRow.cells.item(2).setAttribute('width','29%');
addedRow.cells.item(4).className = "text-center";
addedRow.cells.item(4).className = "text-center";
addedRow.cells.item(5).className = "text-center";
}
$('#questionsModal').modal('show');
}
});
}
8 Réponses :
Essayez de supprimer p>
Vous pouvez également essayer de spécifier une Cela pourrait être légèrement lié, bien que c'était un problème de bootstrap 2.3.2 et on dirait que vous utilisez 3. P>
http://www.bootply.com/88364 strong> p>
@Adosi: C'était déjà défilé sur Y, mais ce n'était pas l'effet souhaité, la magnanimité voulait qu'il enveloppe le contenu de la table.
Supprimer le
Cette question est posée ici Datables ne devient pas sensible à la boîte de dialogue modale bootstrap3 Je suggérerais que vous activiez l'extension réactive de datables, fossé l'emballage et utilisez cet extrait de code. P>
//once the modal has been shown $('#yourModal').on('shown.bs.modal', function() { //Get the datatable which has previously been initialized var dataTable= $('#yourResponsiveDataTableInModal').DataTable(); //recalculate the dimensions dataTable.columns.adjust().responsive.recalc(); });
très agréable! Cela n'a pas fonctionné pour moi, cependant, je suis allumé l'option code> ScrollX code>. impair.
En outre, je l'ai travaillé avec juste .Columns.Adjust (); code>
<div class="modal-body"> <div class="row table-responsive"> <div class="col-sm-12"> <table id="example" class="table table-striped table-bordered table-hover"> <thead> <tr> <th class="site_name"> Feedback </th> <th> Ticket Id </th> <th> Date of Creation </th> <th> Classification </th> <th> Topic </th> <th></th> </tr> </thead> </table> </div> </div> </div>
Essayez la classe de conteneurs ci-dessus.
Après avoir essayé tant de solutions, j'ai trouvé une solution.
Il suffit de mettre la table à l'intérieur d'un div et de définir le CSS à l'intérieur du code. P>
<div style="overflow:auto;"> <table> ..... </table> </div>
Après avoir essayé tant de solutions, j'ai trouvé celui qui fonctionne pour moi!
Il suffit de mettre la table à l'intérieur d'un div et de définir le CSS à l'intérieur du code. P>
<div style="overflow:auto;"> <table> ..... </table> </div>
initialiser le datatable comme ça
Initialiser le jeu de données lors de l'ouverture du temps modal.First lorsque nous ouvrons le modal i == 1 second thime i == 2 SO SE DaTaTble ne peut pas réintitualiser encore et ne donne aucune boîte d'alerte comme DataTable déjà initalize
Cela peut être une solution à la question BT, ce serait une réponse bien meilleure si vous avez expliqué pourquoi il s'agit d'une solution et de son fonctionnement.
Initialiser le jeu de données lors de l'ouverture du temps modal.First lorsque nous ouvrons le modal i == 1 second thime i == 2 SO SE DaTaTble ne peut pas réinitialiser à nouveau et ne donne à nouveau pas une boîte d'alerte comme DataTable déjà initalisé.
Il suffit d'insérer votre table à l'intérieur d'un DIV avec une classe "Table-sensible":
<div class="table-responsive"> //Your table here </div>