Laravel-datatables: L'exportOption 'columns' => ': visible' ne fonctionne pas

Créé le 21 déc. 2017  ·  15Commentaires  ·  Source: yajra/laravel-datatables

Résumé du problème ou de la demande de fonctionnalité


Lors de l'exportation, le paramètre:

'exportOptions' => [
                          'columns' => ':visible
                      ],

Ne fonctionnent pas

il devrait activer l'option d'exporter uniquement les colonnes visibles et pas toutes.

Détails du système

  • Système opérateur
    Debian wheezy
  • Version PHP
    PHP 7.1.8
  • Version de Laravel
    Cadre Laravel 5.5.19
  • Version Laravel-Datatables
yajra/laravel-datatables-buttons      v3.1.0             Laravel DataTables Buttons Plugin.
yajra/laravel-datatables-html         v3.2.1             Laravel DataTables HTML builder plugin for Laravel 5.4+.
yajra/laravel-datatables-oracle       v8.3.2             jQuery DataTables API for Laravel 4|5
question

Commentaire le plus utile

En effet, une solution de contournement consiste à ajouter un paramètre à la fonction _buildParams
Et puis insérez-le dans la méthode 'getColumns' côté serveur.
Je viens de faire un PR pour ça: https://github.com/yajra/laravel-datatables-buttons/pull/78

Tous les 15 commentaires

Pouvez-vous s'il vous plaît me relier à l'exemple datatables.net de comment cela est fait? Cette option est un peu nouvelle pour moi. Merci!

Je vois, cette démo est pour l'impression sur l'implémentation côté client. Pour le côté serveur, ce n'est malheureusement pas pris en charge.

@yajra pensez -vous que cette fonctionnalité sera implémentée dans une version future?

C'est un peu bizarre que l'impression côté serveur prenne en compte la visibilité des colonnes, mais pas l'export xls. Y a-t-il une raison à ce comportement différent?

AFAIK, colvis n'est pas également disponible sur l'implémentation côté serveur du côté JS, il peut donc être un peu difficile d'implémenter atm.

Pour l'exportation, vous pouvez simplement définir exportable sur false. Voici quelques configurations de colonnes que vous pouvez utiliser:

  'orderable'      => false,
  'searchable'     => false,
  'exportable'     => false,
  'printable'      => true,
  'visible'        => true,

Avez-vous déjà travaillé sur ce problème ou cette fonctionnalité?

@yajra Je pense que nous pourrions passer une variable à _buildParams Je ne sais pas encore comment faire cela, mais je vous demande de me donner un indice :)

En effet, une solution de contournement consiste à ajouter un paramètre à la fonction _buildParams
Et puis insérez-le dans la méthode 'getColumns' côté serveur.
Je viens de faire un PR pour ça: https://github.com/yajra/laravel-datatables-buttons/pull/78

Eh bien, maintenant nous savons comment attraper le paramètre côté serveur, aka backend, mais comment l'envoyer dans la requête dt ajax réelle? qu'est-ce que js faut-il éditer?

C'est dans le fichier modifié dans le PR:
https://github.com/yajra/laravel-datatables-buttons/pull/78/files

Ne fonctionne pas avec l'impression! @FabienLucini , uniquement avec postcsv visible. pas même pdf!

Dans ce POC, j'ai fait les changements pour postExcel et postCsv
Mais vous pouvez faire de même pour le pdf et imprimer, puis ajuster votre code côté serveur.
Acclamations

@FabienLucini Merci beaucoup, vous avez vraiment fait l'affaire. Vous m'avez sauvé des heures de réflexion et de remue-méninges.
Parfois, peut-être tout le temps: D on se sent vide, la solution est devant vos yeux et vous ne pouvez pas la comprendre. loooool

@yajra Implémentons ces changements dans la branche.

@FabienLucini @AmirTallap merci. Vous pouvez également PR la partie imprimée pour un hacktobefest points au cas où vous vous joindriez à la friandise.

Cette page vous a été utile?
0 / 5 - 0 notes