簡體   English   中英

ag-grid 比較器 function 未被觸發

[英]ag-grid comparator function not being triggered

我將 ag-grid 9.X 與 angularJs 一起使用,當嘗試為日期列設置比較器 function 時,它不會被觸發。

      {
      headerName: 'Date',
      field: 'lastDate',
      width:100,
      sortable: true,
      comparator: dateComparator,
      }

我還設置enableSorting: true 該功能是否有可能在該版本的 ag-grid 中不可用?

謝謝 !

因此,由於我無法讓比較器 function 工作,我使用以下技巧對日期列進行排序:

  • 確保輸入網格的原始數據具有該列的 Javascript 日期對象而不是字符串(以便 ag-grid 的排序算法(使用“>”運算符)可以將這些日期作為日期而不是字符串進行比較)示例:

     data.forEach(function(obj,i){ let dateStr = obj.date let year = dateStr.substring(0, 4) let month = dateStr.substring(5, 7) let day = dateStr.substring(8, 10) let time = dateStr.substring(11, 21) let date = new Date(year+"-"+month+"-"+day+" "+time) data[i].date = date }) $scope.gridConfig.data = data

事實上,我通過這個問題了解到的是,ag-grid 排序算法不會作用於 cellRenderer 渲染的數據,也不會作用於 valueGetter。 它實際上使用原始數據。

  • 可選:這些列將以 Javascript 日期 object格式呈現。 如果您想要這些日期的特定格式,您可以使用 cellRenderer function 或該列的 valueGetter 將這些日期解析回原始格式。 不用擔心,排序不會受到影響,因為它仍會使用原始數據中的日期對象。

我認為您的比較器的實施是問題所在。 您使用的是 static function 嗎? 如果不試試這個,看看它是否有效。

{
    headerName: 'Date',
    field: 'lastDate',
    width:100,
    sortable: true,
    comparator: (a, b) => {
        //implement your comparator here.
    },
}

您必須添加以下內容:

sort: 'asc',

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM