@romany4

Возможно ли экспортировать поле из kartik grid при использовании input при отображении данных?

Имеется вывод данных через Kartik-grid.
При этом некоторые из столбцов используют настройки, как в примере ниже
[
        'attribute' => 'email',
        'width' => '150px',
        'value' => function ($model, $key, $index, $widget) {
            return Html::input('text', 'email', $model->email, ['class' => 'kartik-field', 'readonly' => 'readonly']);
        },
        'format' => 'raw',
    ],


Т.е. при отображении информации используется input (в виду особенностей - от использования input отказываться нежелательно).

Так вот - при использовании виджета Kartik Export столбцы, которые использовали input для вывода информации будут пустыми при просмотре документа, созданного на основе экспорта.

Если заменить input на обычный вывод - данные в экпорт-файле появляются.

Кому-нибудь приходилось сталкиваться с решением подобной задачи - корректное отображение input-полей при экспорте?
Может быть можно добавить обычный текст к input?
'value' => function ($model, $key, $index, $widget) {
            return Html::input('text', 'email', $model->email, ['class' => 'kartik-field', 'readonly' => 'readonly']) . '<span class="hidden">'.$model->email.'</span>';
        },

И сделать так, чтобы он был невидимым для просмотра, но показывался при экспорте?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Это вопрос не gridview, а к KartikExport. Надо создать свой класс, унаследоваться от KartikExport и переопределить методы, которые обрезают input. Не лазил там глубоко, но думаю, что он просто делает обрезку тегов.
Если это так, то теоретически все просто, можно рядом с инпутом вставить span c opacity:0; и данными внутри.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы