【问题标题】:kartik Select2 FilterType in gridview doesn't workgridview中的kartik Select2 FilterType不起作用
【发布时间】:2017-05-21 14:36:28
【问题描述】:

我有一个关于 kartik select2 filterType 不起作用的问题,这是我的代码的一部分:

[
                    'format' => ['link',$idmodel],
                    'attribute' =>$attribute,
                    'filterType'=>GridView::FILTER_SELECT2,
                    'filterWidgetOptions' => [
                    'data' => \yii\helpers\ArrayHelper::map($model_::find()->all(),$attribute,'nom_'.strtolower($idmodel)),
                    'options' => ['placeholder' => '-'.$idmodel.'-'],
                    'pluginOptions' => ['allowClear' => true],
                    'theme' => Select2::THEME_KRAJEE,

                    ],  

当我评论这一行时:

'filterType'=>GridView::FILTER_SELECT2,

一个文本字段出现在我的过滤器网格视图中。 谁能帮我 ?? 提前致谢

【问题讨论】:

  • 它的出现是合乎逻辑的。你想隐藏它吗?
  • 尝试取消设置 js 文件资产 在文件末尾添加这一行 unset($this->assetBundles['kartik\widgets\Select2Asset']);

标签: yii2 select2 kartik-v


【解决方案1】:

正如我从您与 Edvin Tenovimas 的对话中看到的那样,您的问题是没有加载任何 jQuery Javascript 文件。你用composer正常安装Select2包了吗?

$ php composer.phar require kartik-v/yii2-widget-select2 "@dev"

在这种情况下,您必须查看文件vendor/bower/jquery/dist/jquery.min.js。该文件必须自动复制到web/assets 下的资产目录中。您可以删除资产目录的内容以强制再次创建资产。

$ rm -rf web/assets/*

【讨论】:

  • 如果我按照你说的做并将 jquery.js 添加到我的资产中,由于与 jquery 冲突,会出现许多其他错误,因为加载了其他错误。 $(...).select2 不是一个函数 jQuery(...).datecontrol 不是一个函数 而且所有的 select2 都不起作用,我现在找到的唯一解决方案是在我的资产配置中删除 jquery并且除了gridview中的select2过滤器之外一切正常
  • 您的作曲家设置有问题,或者您手动安装了一些东西,或者您在代码中手动包含了一些 jQuery Javascript 文件,导致冲突的原因。顺便说一句,通常你可以在你的资产中找到jquery.js,而不是jquery.min.js。可能你把两者都包括了。检查您的 HTML(浏览器中的 CTRL-U),查找 jquery.jsjquery.min.js
【解决方案2】:

我相信默认情况下GridView 会启用过滤,除非您手动禁用它。当您将其注释掉时,它将使用默认文本输入而不是 Select2。要同时禁用该选项,请在要禁用过滤的列上使用它:

'filter' => false,

【讨论】:

  • Noo 我不会隐藏它,我想要这个过滤器,但在我的情况下,选择 2 不起作用。其他类型的过滤器的工作方式如下:FILTER_DATE。
  • 好的,我明白了。我的错。我以为你想隐藏它。明天我会检查可能出现的问题。
  • 没问题我已经在我的资产中添加了 bootstrap.css 并且 select2 出现在一个下拉列表中,而不是在 kartik 扩展的 select2 过滤器中。还有一点,select2 在 _search 和 _form 文件中工作正常
  • 似乎缺少一个 jquery 文件,因为当我添加 Jquery.min.js 时一切正常。不幸的是,当我从我的选择中选择选项时出现另一个问题,它变成了一个下拉列表
  • 我还在标题中添加了这段代码:` $('#id_gridview').ready(function() { $("select").select2({ theme : "krajee", allowClear:真}); });`
猜你喜欢
  • 1970-01-01
  • 2018-09-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 1970-01-01
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多