Working with GridState (a table display settings class)

GridState is a class that contains table display settings in ELMA Web Application. Main properties of this class:

 

Name

Type

Description

PageSize

int

Number of entries per page

CurrentPage

int

Current page of the table

SortExpression

string

Expression for sorting

SortDirection

ListSortDirection

Sorting direction (acsending, descending)

ColumnStates

GridStateSet

List of columns + the visibility. Each column is described by the ColumnState class

AvailableColumns

List<SelectListItem>

Columns available for display

SelectedColumns

 

List<SelectListItem>

Columns selected for display

 

Creating a table state in scripts

 

To work with the class, add the namespace:

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

To create a state from scratch, use a special static method of the GridState class. The table unique name and type that will be displayed in the table are passed as parameters. The method will return a ready table state.

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

If you want to change the list of columns, do the following: go through ColumnStates and set the Hidden property in the required column to the respective value (if true, the column is hidden, if false, the column is displayed). To change the order of displayed columns, you need to correctly set the Order property of the ColumnState class. Columns are sorted by this property in ascending order.

To set the default sorting use the SortExpression and SortDirection properties.

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