2017-08-03 16 views
0

剣道Plunker linkの公式グリッドフィルタリングの例を使用して、ProductIDフィールドのフィルタを有効にすると、フィルタが機能せず、コンソールで次のエラーが表示されます。基本的に、番号の付いた列フィルターは機能していません。しかし、データ型が文字列の場合は動作します。剣道グリッド(角2+)数値をフィルタリングできません。列

ERROR:

ERROR TypeError: (d.ProductID || "").toLowerCase is not a function 
    at eval (eval at t.compileFilter (VM1859 kendo-data-query.js:NaN), <anonymous>:3:29) 
    at Object.t.count (VM1859 kendo-data-query.js:1) 
    at Object.t.process (VM1859 kendo-data-query.js:1) 
    at AppComponent.dataStateChange (VM1970 app.component.ts!transpiled:22) 
    at Object.eval [as handleEvent] (VM1971 AppComponent.ngfactory.js:23) 
    at handleEvent (VM856 core.umd.js:12108) 
    at callWithDebugContext (VM856 core.umd.js:13567) 
    at Object.debugHandleEvent [as handleEvent] (VM856 core.umd.js:13155) 
    at dispatchEvent (VM856 core.umd.js:8720) 
    at eval (VM856 core.umd.js:10882) 
+0

現在、データ型を文字列にキャストすることで回避策を講じました。しかし、この虫は剣道チームによって修正される必要があります。 – ZabedAkbar

答えて

1

d.ProductIDは、例えばnullundefined NOR型stringの、いずれでもない場合、これは、エラーがスローされますd.ProductID = 12。あなたの例では、IDがタイプ番号であると仮定しています。

私はこのライブラリに慣れていないんだけど、あなたは例を見れば、彼らは数値用のフィルタを持っています:

<kendo-grid-column field="UnitPrice" title="Unit Price" width="180" filter="numeric" format="{0:c}"> 

idはいえ、文字列ではなく整数として表現されなければなりません。経験則として、整数は算術演算が意味を成すならば、使用されるべきです。例えば2つのインスタンスを追加できます。たとえ数字で表されていても、IDは名前です。 (電話番号のように)。したがって、ここで文字列表現を使用する必要があります。