1

私はag-Gridを使用していますが、データをフィルタリングするときに問題があります。価格列でデータをフィルタリングすると、数字のドットでのみ機能し、コンマでは機能しません。

Link: https://plnkr.co/edit/LDdrRbANSalvb4Iwh5mp?p=preview

実際の例: [価格] 列の選択ボックスで、「1.5」を挿入し、「1,5」を挿入してみてください。

4

3 に答える 3

1

これは、このフィルターがネイティブ フィルターであるためです。

カスタム動作を処理したい場合は、独自のフィルターを定義してください。

ドキュメント : https://www.ag-grid.com/angular-grid-filtering/index.php

手っ取り早い解決策は、次のように NumberFilter にモンキー パッチを適用することです。

NumberFilter.prototype.doesFilterPass = function (node) {
            if (this.filterNumber === null) {
                return true;
            }
            var value = this.valueGetter(node);
            if (!value && value !== 0) {
                return false;
            }
            var valueAsNumber;
            if (typeof value === 'number') {
                valueAsNumber = value;
            }
            else {
                valueAsNumber = parseFloat(value.replace(',','.'));
            }
            switch (this.filterType) {
                case EQUALS:
                    return valueAsNumber === this.filterNumber;
                case LESS_THAN:
                    return valueAsNumber < this.filterNumber;
                case GREATER_THAN:
                    return valueAsNumber > this.filterNumber;
                default:
                    // should never happen
                    console.warn('invalid filter type ' + this.filterType);
                    return false;
            }  
};

次に、変更された行は次のとおりです。

 valueAsNumber = parseFloat(value.replace(',','.'));
于 2016-03-03T09:55:27.653 に答える