Datatables fnAdjustColumnSizing ne fonctionne pas après le traitement ajax
Je suis actuellement à l'aide de tables de données avec l'ajax données et je veux faire ajuster la largeur de colonne.
J'ai donc trouvé cette fonction fnAdjustColumnSizing et j'essaie de l'utiliser :
oTable = $('.datatable').dataTable( {
"sScrollX": "100%",
"sScrollXInner": "200%",
"bScrollCollapse": true,
"bDestroy" : true,
"sAjaxSource": "xhr.php",
"bFilter": false,
"bSort": false,
"bLengthChange": false,
"bPaginate": false,
"bInfo": false,
"fnServerData": function ( sSource, aoData, fnCallback ) {
$.ajax( {
"dataType": 'json',
"type": "POST",
"url": "webservice.php",
"data": 'id=' + quotation_id + '&customer_id=' + id + '&action=true',
"success": function(msg){
fnCallback(msg);
}
});
},
"fnInitComplete": function() {
this.fnAdjustColumnSizing();
}
});
La fonction n'a pas d'effet, mais si je l'utilise à l'intérieur d'un autre événement, par exemple comme ceci :
$('#target').click(function() {
oTable.fnAdjustColumnSizing();
});
Cela fonctionne bien, une idée ?
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de faire
Parce que je ne suis pas sûr que
this
points à la table de l'objetJ'ai trouver une solution à l'aide d'une fonction à l'intérieur de la "réussite" de rappel de ma requête ajax :
Et il fonctionne comme un charme, mais je ne sais pas pourquoi. Quelqu'un peut expliquer ?
J'ai eu un problème similaire dans Internet Explorer 8 (et non pas dans Firefox): j'ai été faire mon les en-têtes cas de non-alignement à l'égard du corps de table.
Le tableau est initialisé à l'intérieur d'un 'modal' dialogue (twitter bootstrap), APRÈS il est montré.
Enfin, pour le faire fonctionner avec Internet Explorer 8, après la création de la table, je suis en train de faire cet appel:
Cette actualise le tableau sans en faire un autre inutile appel Ajax, mais il attend 300 ms avant de le faire, de se "laisser internet explorer faire sa chose", avant de se réajuster. Si vous définissez des valeurs inférieures à savoir 10 ms) cela ne fonctionne pas.
J'espère que cela aide,
Roger