2016-11-23 11 views
0

yii2 gridViewに範囲フィルタを追加します。これは、フィルタ入力をクリックすると、表示されたようなポップオーバーが表示されます。yii2グリッドフィルタ - フィルタ入力を無視する

enter image description here

ポップオーバーのためのdivがtdフィルターセル(position:absolute)の内部にあります。

私が 'from'または 'to'値を変更すると、グリッドが再ロードされ、yii.gridView.jsからフィルタリングされます。これらの入力値を変更すると、グリッドフィルタリングを避けることができますか?つまり実行中のyii.gridView.jsから 'applyFilter'関数を停止しますか?

リスナーは、フィルタ行内の入力にあるように見えます。

答えて

0

新しいクリックをバインドし、 'from'と 'to'フィルタ入力に 'press'リスナーを挿入してからyii.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()); 
    } 
}; 
関連する問題