2010-02-16 4 views
1

Quelqu'un peut-il me donner un exemple de comment ajouter un nowrap = "nowrap" à une colonne lorsque toutes les informations sont générées à la volée pour une table ajax?DataTables jQuery plugin nowrap pour Ajax table

$('#results').dataTable({ 
    "fnRowCallback": function(nRow, aData, iDisplayIndex) { 
     $(nRow).attr('id', aData[0]); 
     return nRow; 
    }, 
    "bAutoWidth": false, 
    "sPaginationType": "full_numbers", 
    "bProcessing": true, 
    "sAjaxSource": 'ajax/purchasers.php', 
    "aaSorting": [[1,'asc']],     
    "aoColumns": [        
     { "bVisible": false },      
     null,         
     null, 
     null, 
     null, 
     null, 
     null, 
     null 
    ] 
}); 

Je sais que cela pourrait être long. Merci d'avance.

Répondre

-1

Dans le cas où quelqu'un est intéressé par la solution, vous pouvez utiliser fnInitComplete à boucle sur la table après DataTables se fait le rendu comme si:

$('#results').dataTable({ 
    "fnInitComplete": function() { 
     $('#results tbody tr').each(function(){ 
       $(this).find('td:eq(0)').attr('nowrap', 'nowrap'); 
     }); 
    }, 
    "sAjaxSource": 'ajax/purchasers.php' 
}); 
+0

S'il vous plaît voir ma réponse pour une meilleure solution du point de vue de la performance. Vous ne voulez probablement pas faire de boucle sur toute la table pendant que vous pouvez ajouter une classe css simple lors de l'initialisation. Essayez les deux options avec un grand nombre de lignes. Si vous n'avez pas affaire à un grand nombre de lignes, vous êtes probablement bien. –

+0

La solution est avec CSS! – Mattos

8

Il est préférable d'y parvenir à la place par le style.

"aoColumns": [        
    { "sClass": "my_class"}, 

dans la feuille de style

.my_class { 
    white-space:nowrap; 
} 
+0

Tout en utilisant la pagination et en testant la méthode de Jeerose, seule la première page de la table obtient les attributs assignés ... donc le styler en utilisant les aoColumns est un meilleur choix. –

2

Bien qu'il fonctionnera certainement ajouter une classe et créer une entrée de CSS pour cela, il semble que l'aide d'un marteau pour marteler dans une vis.

Les données permettent déjà de le faire facilement.

Dans votre déclaration dataTable ajouter:

"fnRowCallback": function(nRow) { 
    if(nRow.cells[2]) nRow.cells[2].noWrap = true; // column index starts with 0 and we check if cells[2] is null to be ultra safe 
    return nRow; 
}, 

Hope this helps

+0

La publication de jeerose nécessite des données externes (aux données) javascript et Karthik requiert des css externes (aux datatables). Cela devrait bien fonctionner avec tout ce que DataTables essaie de faire. – kasdega

+0

ça fonctionne parfaitement pour moi. Je vous remercie. –

Questions connexes