-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGridViewInfo.cs
48 lines (44 loc) · 1.35 KB
/
GridViewInfo.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using DevExpress.Web;
/// <summary>
/// Summary description for GridViewInfo
/// </summary>
public class GridViewInfo {
public GridViewInfo() {
}
public GridViewInfo(ASPxGridView grid) {
Columns = new List<ColumnInfoBase>(grid.Columns.Count);
FilterExpression = grid.FilterExpression;
PageIndex = grid.PageIndex;
}
public List<ColumnInfoBase> Columns { get; set; }
public string FilterExpression { get; set; }
public int PageIndex { get; set; }
public void RestoreGridViewLayout(ASPxGridView grid) {
foreach (ColumnInfoBase column in Columns) {
DataColumnInfo dataColumnInfo = column as DataColumnInfo;
if (dataColumnInfo != null) {
column.RestoreGridViewColumn(grid.Columns[dataColumnInfo.FieldName]);
continue;
}
if (column is CommandColumnInfo) {
column.RestoreGridViewColumn(GetSpecificColumn<GridViewCommandColumn>(grid));
continue;
}
if (column is BandColumnInfo) {
column.RestoreGridViewColumn(GetSpecificColumn<GridViewBandColumn>(grid));
continue;
}
}
grid.FilterExpression = FilterExpression;
grid.PageIndex = PageIndex;
}
private T GetSpecificColumn<T>(ASPxGridView grid) where T : GridViewColumn {
foreach (GridViewColumn c in grid.Columns)
if (c is T) return (T)c;
return null;
}
}