Сортировка MUI DataGrid — можно ли учитывать несколько столбцов при определении модели сортировки по умолчанию?

У меня есть модель данных, которая содержит 3 разных поля даты (estimateDue, workStartDue, workEndDue). У меня есть требование, в котором говорится, что для каждой строки сортировка по умолчанию должна учитывать все 3 поля даты, определять ближайшее и использовать это значение для сортировки для этой строки.

Так, например, если значение estimateDue является самым ранним, то следует использовать это значение, но для другой строки workStartDue может быть самым ранним, поэтому следует использовать это значение. Затем эти значения следует использовать для сортировки строк.

Это возможно? Я читал все, что мог найти об определении значения по умолчанию sortModel, но не смог найти ничего, что бы подсказывало, как это можно сделать.

Большое спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение этой проблемы состоит в том, чтобы добавить столбец, в котором вы получаете его значение из других столбцов. Затем вы можете отсортировать по этому новому столбцу. В моем примере используются maturityDate и dateCreated в демонстрационных данных из документации, но вы можете применить ту же идею к своим трем датам.

  {
    field: "earliestDate",
    headerName: "Earliest Date",
    type: "date",
    width: 150,
    valueGetter: (params) => {
      if (params.row.maturityDate < params.row.dateCreated) {
        return params.row.maturityDate;
      }
      return params.row.dateCreated;
    }
  }

Конечно! Разочарован, я не подумал об этом! Действительно большое спасибо.

Chuckatron 05.04.2023 10:41

Другие вопросы по теме