Как обновить установленные значения фильтра в AG-СЕТКЕ

#angular #ag-grid

Вопрос:

Я использую AG-GRID и ANGULAR в сочетании с Spring Boot для разработки.

Ситуация такова…

Когда я нажимаю кнопку запроса для первого вызова RESTful API, значение фильтра будет обновлено, но при втором выполнении запроса для вызова API фильтр не может быть обновлен.

Я прочитал официальную документацию о списках наборов и фильтров на ag-grid.com. Официальный документ предоставляет метод refreshFilterValues() и атрибут refreshValuesOnOpen: true , но ни один из них не работает.

Позже я обнаружил, что это может быть связано с версией AG-GRID. Версия, которую я сейчас использую, 21.2.2, а затем я перехожу к официальному документу этой версии: https://www.ag-grid.com/archive/21.2.2/javascript-grid-filter-set/

Я использовал этот атрибут syncValuesLikeExcel: true , но он все еще не работает. Это меня очень беспокоит. Пожалуйста, какой-нибудь экспертный совет?

Часть кода Здесь:

 //AG-GRID Version 21.2.2
//rowModelType: 'infinite'

this.defaultColDef = {
      resizable: true ,
      sortable: true ,
      editable: true,
      width: 150,
      filter: true
    };

this.columnDefs = [
      { headerName: 'customer', field: 'customer', width: 150 },
      { headerName: 'material', field: 'material', width: 150 },
      { headerName: 'unitQuotation', field: 'unitQuotation', width: 150 },
      { headerName: 'startTime', field: 'startTime', width: 150,
       filter: 'agSetColumnFilter'
       ,filterParams: {
         values:params => {
          setTimeout(() => {
              const values =  this.startTimeArray;
              params.success(values); }, 500);
                  },
        syncValuesLikeExcel:true,
      }
 
        ,cellRenderer: function (params) {

        return moment(params.value).format('YYYY-MM-DD'); }},    


//startTimeArray like this ['2021-01-01',',2021-02-01','2021-03-01']  
getStartTime(obj){//update filter values
    this.httpClient.post(getStartTimeListURL,obj).subscribe(data => {
      console.log(data);
      this.startTimeArray = data;
    });
}

search(){
    console.log('Search');
    var contextObj ={};
    var datasource = {
      getRows: (params: IGetRowsParams) => {
        contextObj['startTime'] = this.startTime;
        contextObj['endTime'] = this.endTime;
        contextObj['material'] = this.material;
        contextObj['customerCode'] = this.selectedCustomerID;
        params.context = contextObj;
        params.endRow =  this.gridOptions.paginationPageSize;
        this.getStartTime(params);//****call RESTful API**** 
        var filter = this.gridOptions.api.getFilterInstance('startTime');
        this.quoImportService.getQuoHistoryByCondition(params)
          .subscribe(data => {
            params.successCallback(data['content'], data['totalElements'])
          });
      }
    }