ag 网格角度中的日期过滤器

问题描述 投票:0回答:1

我正在尝试为我的网格创建一个日期过滤器,该网格是使用 Angular 中的 ag 网格制作的。

我的代码如下:

    {
      field: 'data_determina',
      headerName: 'Data determina',
      cellDataType: 'date', 
      filter: "agDateColumnFilter",
      filterParams : {
        /* filterOptions: ['equals', 'greaterThan', 'lessThan', 'inRange'] */
      },
      valueFormatter: (params: any) => {
        if (params && params.value) {
          return moment(params.value).format('DD/MM/YYYY');
        }
        return null;
      },

    },

有人可以向我解释一下为什么日期没有被过滤吗?

angular date filter ag-grid ag-grid-angular
1个回答
0
投票

添加过滤参数

var filterParams = {
  comparator: (filterLocalDateAtMidnight, cellValue) => {
    var dateAsString = cellValue;
    if (dateAsString == null) return -1;
    var dateParts = dateAsString.split('/');
    var cellDate = new Date(
      Number(dateParts[2]),
      Number(dateParts[1]) - 1,
      Number(dateParts[0])
    );

    if (filterLocalDateAtMidnight.getTime() === cellDate.getTime()) {
      return 0;
    }

    if (cellDate < filterLocalDateAtMidnight) {
      return -1;
    }

    if (cellDate > filterLocalDateAtMidnight) {
      return 1;
    }
    return 0;
  },
  minValidYear: 2000,
  maxValidYear: 2021,
  inRangeFloatingFilterDateFormat: 'Do MMM YYYY',
};

像这样更改列定义

{
  field: 'data_determina',
  headerName: 'Data determina',
  filter: "agDateColumnFilter",
  filterParams: filterParams,
},

示例:https://plnkr.co/edit/0VMVQa7nBagrqeWp?preview

© www.soinside.com 2019 - 2024. All rights reserved.