Laravel-datatables: Параметр exportOption 'columns' => ': visible' не работает

Созданный на 21 дек. 2017  ·  15Комментарии  ·  Источник: yajra/laravel-datatables

Краткое изложение проблемы или запроса функции


При экспорте параметр:

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

Не работает

он должен включать возможность экспорта только видимых столбцов, а не всех.

Детали системы

  • Операционная система
    Debian wheezy
  • Версия PHP
    PHP 7.1.8
  • Версия Laravel
    Фреймворк Laravel 5.5.19
  • Версия 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

Самый полезный комментарий

На самом деле обходной путь - добавить параметр к функции _buildParams
И затем вставьте его в метод getColumns на стороне сервера.
Я только что сделал для этого пиар: https://github.com/yajra/laravel-datatables-buttons/pull/78

Все 15 Комментарий

Не могли бы вы связать меня с примером того, как это делается на datatables.net? Этот вариант для меня немного в новинку. Спасибо!

Я вижу, эта демонстрация предназначена для печати на стороне клиента. На стороне сервера, к сожалению, не поддерживается.

@yajra, как вы думаете, эта функция будет реализована в будущей версии?

Немного странно, что печать на стороне сервера учитывает видимость столбцов, а экспорт xls - нет. Есть ли причина для разного поведения?

AFAIK, colvis также недоступен для реализации на стороне сервера на стороне JS, поэтому может быть немного сложно реализовать atm.

Для экспорта вы можете просто установить для exportable значение false. Вот некоторые конфигурации столбцов, которые вы можете использовать:

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

Есть ли еще какие-либо способы решения этой проблемы или функции?

@yajra Я думаю, мы могли бы передать переменную в _buildParams. Я пока не знаю, как это сделать, но прошу вас дать мне подсказку :)

На самом деле обходной путь - добавить параметр к функции _buildParams
И затем вставьте его в метод getColumns на стороне сервера.
Я только что сделал для этого пиар: https://github.com/yajra/laravel-datatables-buttons/pull/78

Что ж, теперь мы знаем, как перехватить параметр на стороне сервера, он же бэкэнд, но как отправить его в фактическом запросе dt ajax? какой js нам нужно отредактировать?

Это в файле, измененном в PR:
https://github.com/yajra/laravel-datatables-buttons/pull/78/files

Не работает с печатью! @FabienLucini , только с видимым postcsv. даже не pdf!

В этом POC я внес изменения для postExcel и postCsv.
Но вы можете сделать то же самое для pdf и печати, а затем настроить свой код на стороне сервера.
Ваше здоровье

@FabienLucini Большое спасибо, вы действительно сделали трюк. Вы сэкономили мне часы размышлений и мозгового штурма.
Иногда, может быть, все время: D чувствуешь себя отвалом, решение перед твоими глазами, и ты не можешь его понять. loooool

@yajra Давайте

@FabienLucini @AmirTallap, спасибо. Вы также можете PR за печатную часть получить hacktobefest баллов на случай, если вы присоединитесь к угощению.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги