Есть ли возможность применить фильтр / событие поиска для параметра tableChange (рядом с filterChange и событием поиска) - PullRequest
0 голосов
/ 27 июня 2019

Я использую:

  • mui-datatables 2.4.0
  • Реакция 16.8.1
  • машинопись 3.3.3
  • vs2017 CE 15.9.12

Я сам занимаюсь разбиением на страницы (serverSide = true) и использую опцию tableChange, чтобы перехватывать события и обрабатывать поиск и фильтрацию. Тем не менее: доступны только filterChange и поисковые события, которые запускаются на каждом входе пользователя. Я хочу выполнять поиск и фильтрацию (оба внутренних действия, которые занимают время), если пользователь решает нажать кнопку поиска или кнопку применения фильтра (последнее недоступно). Я что-то упустил в предоставленной документации здесь ?

Попробовал диван: - Я поместил console.log в событие tableAction, но ничего не вижу, когда нажимается кнопка поиска или когда я нажимаю ввод в диалоговом окне фильтра.

Это мое текущее определение смены таблицы:

onTableChange: (action, tableState) => {
                    Tools.logDebug(ENUM.PAGENAME.TVPDATATABLE, "render").addVarStr("ONTABLECHANGE-ACTION:" + action).log();
                    // a developer could react to change on an action basis or
                    // examine the state as a whole and do whatever they want
                    switch (action) {
                        case 'changePage':
                        case 'changeRowsPerPage':
                            this.props.config.handleDataTableStateChange(tableState);
                            if (serverSide) { this.getPage(tableState.page, tableState.rowsPerPage); }
                            break;
                        case 'filterChange':
                            this.props.config.handleDataTableStateChange(tableState);
                            console.log("FILTERLENGTH: "+ tableState.filterList.length);
                            if (Tools.isEmpty(tableState.filterList, D.Enum_FIELDTYPE.ARRAY)) { return; }
                            else {
                                this.filterList(tableState.filterList);
                                break;
                            }
                        case 'search':
                            this.props.config.handleDataTableStateChange(tableState);
                            //if searchstring empty display current page
                            if (Tools.isEmpty(tableState.searchText)) {
                                this.getPage(tableState.page, tableState.rowsPerPage);
                            }
                            else {
                                //search from configurable number of characters
                                if (tableState.searchText.length < Number(ENUM.GLOBALSETTINGS.DATATABLE_NOOFCHARSTOSTARTSEARCH)) {
                                    console.log("PAGE: "+ tableState.page);
                                    return;
                                }
                                else {
                                    this.searchList(tableState.searchText);
                                    break;
                                }
                            }
                    }
                }

Любая помощь очень ценится!

...