Не работает DateRangePicker в GridView с Pjax

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
o.vysidalko
Сообщения: 7
Зарегистрирован: 2015.05.19, 12:21

Не работает DateRangePicker в GridView с Pjax

Сообщение o.vysidalko »

Здравствуйте! Подскажите, как можно решить проблему работы DateRangePicker от Kartik в GridView с Pjax?

Код: Выделить всё

    <?php Pjax::begin(); ?>
            <?= GridView::widget($gridConfig); ?>
      <?php Pjax::end(); ?>

Код: Выделить всё

$gridConfig = [
    'id' => $gridId,
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'tableOptions' => [
        'class' => 'table table-bordered table-hover'
    ],
    'columns' => [
        [
            'class' => CheckboxColumn::classname()
        ],
        'id',
        [
            'attribute' => 'username',
            'format' => 'html',
            'value' => function ($model) {
                return Html::a($model['username'], ['update', 'id' => $model['id']], ['data-pjax' => 0]);
            }
        ],
        'email',
       [
            'attribute' => 'status',
            'format' => 'html',
            'value' => function ($model) {
                if ($model->status === $model::STATUS_ACTIVE) {
                    $class = 'label-success';
                } elseif ($model->status === $model::STATUS_INACTIVE) {
                    $class = 'label-warning';
                } else {
                    $class = 'label-danger';
                }

                return '<span class="label ' . $class . '">' . $model->getStatus() . '</span>';
            },
            'filter' => Html::activeDropDownList(
                $searchModel,
                'status',
                $statusArray,
                ['class' => 'form-control', 'prompt' => 'Статус']
            )
        ],
        [
            'attribute' => 'role',
            'filter' => Html::activeDropDownList(
                $searchModel,
                'role',
                $roleArray,
                ['class' => 'form-control', 'prompt' => 'Роль']
            )
        ],
        [
            'attribute' => 'created_at',
            'format' => ['date', 'php:d-m-Y'],
            'filterInputOptions' => [
                'class'       => 'form-control',
                'placeholder' => 'поиск...',
            ],

            'filter' => DateRangePicker::widget([
              'name'=>'created_at',
              'useWithAddon'=>true,
              'language'=>'ru',             
              'hideInput'=>TRUE, 
              'convertFormat'=>true,
              'value' => Yii::$app->getRequest()->getQueryParam('created_at') ? Yii::$app->getRequest()->getQueryParam('created_at') : '',
              'pluginOptions'=>[
                  'format'=>'d-m-Y',
                  'separator'=>'/',  
                  'opens'=>'left'
              ]
            ])


        ],
        [
            'attribute' => 'updated_at',
            'format' => ['date', 'php:d-m-Y'],
            'filterInputOptions' => [
                'class'       => 'form-control',
                'placeholder' => 'поиск...',
            ],
            'filter' => DateRangePicker::widget([
              'name'=>'updated_at',
              'useWithAddon'=>true,
              'language'=>'ru',             
              'hideInput'=>TRUE, 
              'convertFormat'=>true,
              'value' => Yii::$app->getRequest()->getQueryParam('updated_at') ? Yii::$app->getRequest()->getQueryParam('updated_at') : '',
              'pluginOptions'=>[
                  'format'=>'d-m-Y',
                  'separator'=>'/',  
                  'opens'=>'left'
              ]
            ])
        ]
    ]
];
Проблема заключается в том что DateRangePicker вызывается только если до этого не было осуществлено поиска по другим полям!
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Не работает DateRangePicker в GridView с Pjax

Сообщение Onotole »

Потому что это javascript. Нужно его переинициализировать после обновления pjax
o.vysidalko
Сообщения: 7
Зарегистрирован: 2015.05.19, 12:21

Re: Не работает DateRangePicker в GridView с Pjax

Сообщение o.vysidalko »

Onotole писал(а):Потому что это javascript. Нужно его переинициализировать после обновления pjax
Спасибо за ответ! Буду благодарен если подскажете как это сделать.
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Не работает DateRangePicker в GridView с Pjax

Сообщение andrei.obuhovski »

o.vysidalko писал(а):
Onotole писал(а):Потому что это javascript. Нужно его переинициализировать после обновления pjax
Спасибо за ответ! Буду благодарен если подскажете как это сделать.
Найди в коде страницы строки похожие на:

Код: Выделить всё

var datetimepicker_016dc443 = {"weekStart":1,"autoclose":true,"format":"dd-mm-yyyy hh:ii:ss","language":"ru"};
jQuery('#datetime_id').datetimepicker(datetimepicker_016dc443);
 
И выполни их после обновления pjax. Должно заработать
Ответить