Работа с GridState (класс настройки отображения таблиц)

GridState – класс, который содержит в себе настройки отображения таблицы в веб-части ELMA. Основные свойства данного класса: 

Название

Тип

Описание

PageSize

int

Количество отображаемых записей на странице

CurrentPage

int

Текущая страница в таблице

SortExpression

string

Выражение для сортировки

SortDirection

ListSortDirection

Направление сортировки (по возрастанию, по убыванию)

ColumnStates

GridStateSet

Список колонок + флаг их видимости. Каждая колонка описывается классом ColumnState

AvailableColumns

List<SelectListItem>

Доступные для отображения колонки

SelectedColumns

 

List<SelectListItem>

Выбранные для отображения колонки

 

Создание состояния таблицы в сценариях 

Для работы с классом нужно добавить пространство имен:

using EleWise.ELMA.Web.Mvc.Models.Grids

Для создания состояния с «нуля» есть специальный статический метод класса GridState. В качестве параметров передается уникальное имя таблицы и тип, который будет отображаться в таблице. Метод на выходе выдаст готовое состояние таблицы.

var gridState = GridState.CreateNew(string.Format("Folder_{0}", model.Entity.Uid), typeof(IDmsObject));

Если мы хотим поменять список выбранных колонок, то делается это следующим образом: нужно пройти по ColumnStates и в нужной колонке установить свойство Hidden в соответствующее значение (если true, то колонка скрыта, если false, то колонка отображается в таблице).  Для смены порядка отображаемых колонок нужно правильно устанавливать свойство Order класса ColumnState. Сортировка выбранных колонок происходит по этому свойству в порядке возрастания.

Для установки сортировки по умолчанию используются свойства SortExpression и SortDirection.

gridState.SortExpression = "Name";
gridState.SortDirection = ListSortDirection.Descending;