【问题标题】:Error while filtering out records from grid从网格中过滤掉记录时出错
【发布时间】:2018-09-19 17:58:19
【问题描述】:

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

知道我们在这里做错了什么。

【问题讨论】:

  • TypeError 发生在哪里?我在发布的代码中没有看到indexOf
  • 它来自内部 kendo js 文件,这是引发错误的行:var operatorMap = { > 15 |包含: function (a, b) { return (a || "").indexOf(b) >= 0; },

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多