Ошибка при фильтрации записей из сетки - PullRequest
0 голосов
/ 19 сентября 2018

У нас есть сетка реагирования кендо, и у нас есть раскрывающийся список фильтров в каждом столбце, по которому пользователь может определить значения поставщика и отфильтровать сетку.Эти фильтры работают нормально, только один фильтр столбцов providerCount не работает, тип данных поля столбца int.

Мы получаем ошибку ниже при фильтрации:

Ошибка типа: (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 голосов
/ 25 октября 2018

Установите filter="numeric" для вашего столбца, таким образом, компонент фильтра будет иметь операторы для сравнения чисел, а не сравнения строк.По умолчанию фильтр является текстовым.

0 голосов
/ 24 октября 2018

Эта ошибка может возникнуть, если данные или фильтр, переданные в функцию filterBy, находятся не в ожидаемом формате.https://www.telerik.com/kendo-react-ui/components/dataquery/api/filterBy/

...