protected virtual void RestoreColumnsState(ColumnsState state) { foreach (GridViewColumn key in state.AllowResizeState.Keys) { key.AllowResize = state.AllowResizeState[key]; } }
protected virtual ColumnsState SaveColumnsState(GridViewTemplate template) { ColumnsState columnsState = new ColumnsState(); foreach (GridViewColumn column in (Collection <GridViewDataColumn>)template.Columns) { columnsState.AllowResizeState[column] = column.AllowResize; column.AllowResize = true; } return(columnsState); }
private TableViewRowLayout GetRowLayout( GridViewRowInfo row, PrintFitWidthMode fitWidthMode, int hierarchyIndent, Rectangle drawArea) { int key = row.ViewTemplate.GetHashCode() + row.HierarchyLevel; if (this.rowLayouts.ContainsKey(key)) { return(this.rowLayouts[key]); } GridTableElement viewUiElement = row.ViewTemplate.ViewDefinition.CreateViewUIElement(row.ViewInfo) as GridTableElement; viewUiElement.Initialize(this.GridView.GridViewElement, row.ViewInfo); viewUiElement.RowHeight = this.GridView.TableElement.RowHeight; viewUiElement.TableHeaderHeight = this.GridView.TableElement.TableHeaderHeight; viewUiElement.GroupHeaderHeight = this.GridView.TableElement.GroupHeaderHeight; this.GridView.ElementTree.ApplyThemeToElement((RadObject)viewUiElement); TableViewRowLayout tableViewRowLayout = new TableViewRowLayout(); tableViewRowLayout.Context = GridLayoutContext.Printer; tableViewRowLayout.Initialize(viewUiElement); int num1 = 0; foreach (GridViewColumn renderColumn in (IEnumerable <GridViewColumn>)tableViewRowLayout.RenderColumns) { if (renderColumn is GridViewRowHeaderColumn || renderColumn is GridViewIndentColumn) { num1 += tableViewRowLayout.GetColumnWidth(renderColumn); } } this.GridView.BeginUpdate(); GridViewAutoSizeColumnsMode autoSizeColumnsMode = tableViewRowLayout.ViewTemplate.AutoSizeColumnsMode; if (fitWidthMode == PrintFitWidthMode.FitPageWidth) { ColumnsState state = this.SaveColumnsState(tableViewRowLayout.ViewTemplate); tableViewRowLayout.ViewTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; int num2 = row.Group != null ? row.Group.Level + 1 : 0; tableViewRowLayout.MeasureRow(new SizeF((float)(drawArea.Width + num1 - (row.HierarchyLevel - num2) * hierarchyIndent), (float)drawArea.Height)); this.RestoreColumnsState(state); } else { tableViewRowLayout.ViewTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.None; tableViewRowLayout.MeasureRow(new SizeF((float)this.GridView.Width, (float)this.GridView.Height)); } tableViewRowLayout.ViewTemplate.AutoSizeColumnsMode = autoSizeColumnsMode; this.GridView.EndUpdate(false); this.rowLayouts.Add(key, tableViewRowLayout); return(tableViewRowLayout); }