Как программно получить текущий отсортированный столбец в сетке данных Devextreme?

Я использую версию devextreme datagrid 17.1.1 в своем проекте Angular 4. Я хочу получить текущий отсортированный столбец в typeScript, но экземпляр datagrid не имеет поля сортировки. Как я могу получить текущий отсортированный столбец? Спасибо


person Ramil Aliyev    schedule 12.09.2020    source источник


Ответы (1)


Попробуйте прочитать sortIndex столбца. Это будет 0 или 1 в зависимости от того, сколько столбцов отсортировано. Если у вас есть только один столбец, отсортированный за раз, вы можете сделать что-то вроде этого:

@ViewChild(DxDataGridComponent, { static: false }) dataGrid: DxDataGridComponent;

getSortedColumn() {
  const instance = this.dataGrid.instance;
  const allColumns = Array.from(Array(instance.columnCount()).keys()).map(index => instance.columnOption(index));
  return allColumns.find(col => col.sortIndex != null);
}
person marjay    schedule 12.09.2020
comment
Если я скрою столбец с помощью columnChooser, getVisibleColumns не вернет столбец, поэтому я не получу отсортированный столбец ( - person Ramil Aliyev; 12.09.2020
comment
Это работает для меня, но я сделал небольшое изменение в вашем коде. Спасибо - person Ramil Aliyev; 14.09.2020