从网格中过滤出记录时出错

时间:2018-09-19 17:58:19

标签: javascript reactjs react-native kendo-ui kendo-grid

我们有一个剑道反应网格,并且每一列都有过滤器下拉菜单,用户可以通过它们提供值并过滤出网格。 这些过滤器工作正常,只有一个列过滤器 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);
    }

任何想法我们在这里做错了。

2 个答案:

答案 0 :(得分:0)

如果传递给filterBy函数的数据或过滤器的格式不正确,则可能发生此错误。 https://www.telerik.com/kendo-react-ui/components/dataquery/api/filterBy/

答案 1 :(得分:0)

为您的列设置filter="numeric",这样过滤器组件将具有用于数字比较而不是字符串比较的运算符。默认情况下,filter是文本。