2016-12-29 10:34:15 3439次浏览 3条回答 0 悬赏 20 金钱

屏幕快照 2016-12-29 上午10.28.35.png

扩展 kartik\grid\GridView 中,设置pjax=true时,字段中filter 为select2 ,只有当第一次进入页面的时候,select2正常加载,只要pjax发送一次,select2 就不能正常加载,一直处于显示加载图标状态,请问这是什么原因,急求,所有悬赏分都给你了

  • 回答于 2016-12-30 14:59 举报

    select2那个js是document ready时候执行的,pjax是异步加载,里边的dom会再次加载,js却不会再次执行。把搜索框放到pjax容器外边

  • 回答于 2017-12-11 15:19 举报

    换种使用方法
    'source'=>[

                'attribute' => 'source',
                'contentOptions' => [
                            'width'=>'70'
                        ],
                'value'=>function($model){return  TDriverWand::getWandSource($model->source);},
                'filterType'=>kartik\grid\GridView::FILTER_SELECT2,
                'filter'=>TDriverWand::getWandSource(), 
                //'filter' => ArrayHelper::map(Author::find()->orderBy('name')->asArray()->all(), 'id', 'name'),
                'filterWidgetOptions'=>[
                    'pluginOptions'=>['allowClear'=>true],
                ],
                'filterInputOptions'=>['placeholder'=>'请选择...'],
                'group'=>false,  // enable grouping
                ],
                
    
  • 回答于 2018-05-31 11:56 举报

    同遇到这个问题,解决方法是增加pjax加载后的js处理:

    $(document).on('pjax:complete', function() {
        var el=$('#delete_type');//这个是input框id
        id = el.attr('id');
        var settings = el.attr('data-krajee-select2');
        settings = window[settings];
        $.when(el.select2(settings)).done(initS2Loading(id));//新版本是initS2Loading这个名字
    })
    

    参考:reload select2 after activeForm was submitted

您需要登录后才可以回答。登录 | 立即注册
ligen
试用期

ligen

注册时间:2016-04-01
最后登录:2017-01-20
在线时长:2小时3分
  • 粉丝0
  • 金钱0
  • 威望0
  • 积分20

热门问题