loveorigami / yii2-modal-ajax

A wrapper around Yii2 Bootstrap Modal for using an ActiveForm via AJAX inside.
MIT License
50 stars 30 forks source link

Filter in GridView #33

Closed gashik1979 closed 3 years ago

gashik1979 commented 3 years ago

Привет! В скрипте kb-modals-ajax.js в строке 90 какая-то ошибка, говорит .yiiActiveForm - нет такой функции у объекта jQuery(this.element).find('form').off().yiiActiveForm('destroy').remove();

Сортировка нормально работает, а фильтрация нифига

   <?= ModalAjaxSize::widget([
          'id' => 'showData',
          'header' => 'Data #'.$model->id,
          'toggleButton' => [
          'label' => 'Show All',
                    'class' => 'btn btn-primary pull-right'
          ],
          'url' => Url::to(['/url', 'UrlSearch[data_id]'=>$model->id]), 
          'options' => ['class' => 'header-primary', 'style'=>'width:auto;'],
          'ajaxSubmit' => true,
          'autoClose' => true,
          'pjaxContainer' => '#grid-data-pjax',
    ]); ?>

    <?php Pjax::begin(['id'=>'grid-data-pjax', 'linkSelector'=>'#grid-data-pjax a:not(".glyphicon")', 'timeout' => 5000]); ?>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
    'options' => ['data-pjax' => true],
        'filterModel' => $searchModel,
        'columns' => [...]
     ?>
    <?php Pjax::end(); ?>

error

loveorigami commented 3 years ago

А что за виджет такой ModalAjaxSize?

gashik1979 commented 3 years ago

а, то я компонент сделал наследующий ModalAjax, чтоб стиль применить к модальному окну

<?php

namespace app\widgets;

use lo\widgets\modal\ModalAjax;

use yii\helpers\Html;
use yii\widgets\ActiveFormAsset;

/**
 * Class ModalAjax
 *
 * @package lo\widgets\modal
 * @author  Lukyanov Andrey <loveorigami@mail.ru>
 */
class ModalAjaxSize extends ModalAjax
{
    public $dialog_style;

    public function init()
    {
        parent::init();
    if(!empty($this->dialog_style)){
        $dialog_style=json_encode($this->dialog_style);
            $this->view->registerJs("
            jQuery('.modal-dialog').css($dialog_style);
            ");
    }
    }

}

но если использовать без него чистый ModalAjax, то так же не робыть

loveorigami commented 3 years ago

Напиши подробнее кейс. Фильтрация не работает где?

У тебя страница с гридом и в модалку ты подгружаешь еще один грид? Я модалку в основном применял для форм.

Если нужно показывать грид через грид - то лучше использовать какой-нибудь лайтбокс с iframe-ом. Например - https://www.jacklmoore.com/colorbox/example1/

gashik1979 commented 3 years ago

"У тебя страница с гридом и в модалку ты подгружаешь еще один грид?" именно так "Фильтрация не работает где?" в гриде модалки. Получается у меня как, на странице грид "Последние выплаты", лимитированный грид и кнопка, "показать все". Клик на кнопку открывает модалку, где уже должен быть полноценный грид с фильтрами и обновлением pjax

gashik1979 commented 3 years ago

в общем понял, проблема видимо. Уберу фильтры в модалке и добавлю ссылку, на отдельную страницу. Спасибо за ответ и помощь!

loveorigami commented 3 years ago

пожалуйста )