Les virgules et les $ dans datatable colonnes
J'ai une table avec 4 colonnes qui détiennent de la monnaie. Actuellement, je suis à la traiter comme des colonnes et manuellement en ajoutant '$' pour chaque valeur. Maintenant, j'ai besoin de formater la colonne d'avoir des virgules. Est-il un plug-in pour ce faire? Je tiens également à supprimer l'ajout manuel de '$' valeur. J'ai vérifié quelques sites, mais je n'ai vraiment pas à comprendre comment ils fonctionnent.
il n'est pas clair ce que tu veux dire par "datatable". êtes-vous à l'aide d'une base de données de quelque sorte? ce qui est "normal" de la colonne? plug-in pour ce cadre? plus de détails, s'il vous plaît.
Par datatable, je veux dire jquery datatables api (datatables.net). J'utilise php-javascript-mysql-linux
Par datatable, je veux dire jquery datatables api (datatables.net). J'utilise php-javascript-mysql-linux
OriginalL'auteur user1165952 | 2012-11-08
Vous devez vous connecter pour publier un commentaire.
[Mise à jour de réponse à utiliser les tables de données de 1,9+ et à l'honneur rynop la meilleure réponse. Réponse originale à cette question conservée au-dessous de l'horizontale à la règle, mais c'est à la fois de la date et de moins en moins efficace qu'il devrait l'être.]
Car il est vraiment les données que vous voulez modifier, de ne pas l'intégralité de la cellule, vous devriez être en utilisant le "rendu" de la propriété à l'intérieur des colonnes définition. Pour produire du code propre, vous pouvez stocker la réelle méthode de modification ailleurs et il suffit d'appeler l'un à l'autre:
formatNumber
utilise les regex de ce accepté de répondre:Ajouter la virgule pour les numéros de tous les trois chiffres
[réponse originale à cette question]
Je ne voudrais pas ajouter de la valeur en dollars de chaque cellule de moi-même, une décision qui a pour effet secondaire de réduire la complexité de ce que vous devez faire. 😉 Dans une feuille de calcul ou un tableau de valeurs de devise, vous avez seulement besoin de mettre le symbole de la devise dans l'en-tête ou la première ligne. Le mettre dans l'en-tête qui va rendre votre vie plus facile, en le mettant dans la première ligne sera en fait qu'ajouter de la complexité de votre problème.
Donc, retour à la DataTables lui-même, vous avez plusieurs façons de la peau, ce chat mais en voici deux:
Rendre l'ensemble de la table sans les virgules (ie. par défaut DataTables comportement), mais l'ajout d'une classe à l'un de ces cellules avec la sClass paramètre. Ensuite, utilisez fnDrawCallback le feu à la virgule-la création de la fonction, comme décrit dans le lien ci-dessus.
Utiliser uniquement l'expression régulière à partir du lien ci-dessus pour modifier la cellule en tant que données.
Quelque chose comme ceci (où 3 est le zéro de l'index de la colonne que vous modifiez):
(
aoColumnDefs
est une partie de votre initialisation de l'objet passé endataTable()
);Si vous DEVEZ absolument ajouter le signe de dollar, il faudrait ajouter dans la même fonction avant la
text
fonction.money_format('%(#10n', $cost)
qui ajoute le signe dollar.J'ai également ajouté -
setlocale(LC_MONETARY, 'en_US.UTF-8');
au début de la php.Content que cela a fonctionné pour vous! Ce ne sont que deux des nombreuses façons que vous pourriez peau de ce chat. Un autre très similaire serait de le faire dans le fnRowCallback. Je mentionne cela parce que vous peut trouver une raison de le déplacer plus tard et vous devez être conscient qu'il est là!
Je devrais obtenir autour de la mise à jour ce pour l'API de 1,9+ syntaxe; aussi, au lieu de modifier la "créé cellule", un grand nombre de ce qui peut être fait dans le "rendu" de rappel. La différence est vraiment de savoir si vous avez besoin de modifier la cellule elle-même ou tout simplement le contenu.
OriginalL'auteur Greg Pettit
Je voudrais tirer parti de la 'mRender' méthode 'aoColumns'. Sa plus propre et plus efficace que la solution retenue.
Exemple:
Où formatNumber est définie comme suit:
À l'aide de fnRender vous permet également d'avoir un contrôle complet sur la cellule - par exemple, si vous souhaitez envelopper les données avec le code HTML.
Voir http://www.datatables.net/usage/columns#mRender pour les spécifications complètes
OriginalL'auteur rynop
DataTables 1.10 a une nouvelle Nombre Helper qui est utilisée en conjonction avec l'option de rendu de facilement mettre en forme des nombres, comme ceci:
Cela permet d'afficher un prix de valeur comme 1000.006 "de 1 000$.01".
OriginalL'auteur tbird