我们有一个剑道反应网格,并且每一列都有过滤器下拉菜单,用户可以通过它们提供值并过滤出网格。 这些过滤器工作正常,只有一个列过滤器 providersCount 中断,列字段数据类型为int。
我们在过滤时遇到以下错误:
TypeError:(a ||“”).indexOf不是函数
网格代码如下所示:
<Grid
data={this.state.items}
sortable={{
allowUnsort: this.state.allowUnsort,
mode: this.state.multiple,
sortDir:this.state.sortDir
}}
sort={this.state.sort}
onSortChange={this.sortChange}
filterable={true}
filter={this.state.filter}
onFilterChange={this.filterChange}
onPageChange={this.pageChange}
total={this.state.total}
skip={this.state.skip}
pageSize={this.state.pageSize}
pageable={this.state.pageable}
scrollable={this.state.scrollable}
//style={{ height: '500px' }}
>
<Column field="networkName" sortable={{
allowUnsort: this.state.allowUnsort,
mode: this.state.multiple ? 'multiple' : 'single',
}}
onSortChange={this.sortChange} title="Network Name" width="400px" cell={NetworkNameCell} />
<Column field="networkGroups" title="Network Groups" width="250px" />
<Column field="networkType" title="Network Type" width="250px" />
<Column field="providersCount" title="Assigned Providers" />
<Column field="locationsCount" title="Assigned Locations" />
<Column cell={this.DeleteCommandCell} title="Action" sortable={false} filterable={false} />
<span class="k-icon my-refresh-icon-class"></span>
</Grid>
我们正在通过以下功能过滤记录:
filterNetworks = (filter) => {
debugger
const data = this.networks.slice();
return filterBy(data, filter);
}
任何想法我们在这里做错了。
答案 0 :(得分:0)
如果传递给filterBy函数的数据或过滤器的格式不正确,则可能发生此错误。 https://www.telerik.com/kendo-react-ui/components/dataquery/api/filterBy/
答案 1 :(得分:0)
为您的列设置filter="numeric"
,这样过滤器组件将具有用于数字比较而不是字符串比较的运算符。默认情况下,filter是文本。