【问题标题】:yii2 Grid Filter - Ignore Filter Input Changeyii2 Grid Filter - 忽略过滤器输入变化
【发布时间】:2016-11-23 01:08:44
【问题描述】:

我在 yii2 gridView 中添加了一个范围过滤器,当您单击过滤器输入时,会显示一个类似于所示的弹出框。

弹出框的 div 位于 td 过滤器单元格 (position:absolute) 内。

当我更改“从”或“到”值时,它会触发网格重新加载并从yii.gridView.js 过滤。更改这些输入值时如何避免网格过滤? IE。停止运行 yii.gridView.js 的“applyFilter”功能?

侦听器似乎位于过滤器行内的输入上。

【问题讨论】:

    标签: jquery gridview filter yii2


    【解决方案1】:

    我最终不得不将新的单击和“输入按下”侦听器绑定到“来自”和“到”过滤器输入,然后使用 bindFirstyii.gridView.js 之前绑定它并返回 false 以停止它传播。像这样:

    /**
     * Need to bind first to stop yii.gridView.js triggering filter change   
     */
    $filterInputs.bindFirst('change.yiiGridView keydown.yiiGridView', function() { 
        if (event.type === 'keydown') {
            // enter button
            if (event.keyCode == 13) {
                $btn.trigger('click');
                return false;
            }
        } else return false;
    });
    
    /**
     * Bind to the front of the event listener queue
     */
    $.fn.bindFirst = function(name, fn) {
      var elem, handlers, i, _len;
      this.bind(name, fn);
      for (i = 0, _len = this.length; i < _len; i++) {
        elem = this[i];
        handlers = jQuery._data(elem).events[name.split('.')[0]];
        handlers.unshift(handlers.pop());
      }
    };
    

    【讨论】:

      猜你喜欢
      • 2016-08-24
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      相关资源
      最近更新 更多