private void lnkAdd_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (string.IsNullOrEmpty(txtLayoutName.Text)) { MessageBoxEx.Show("网格布局名称不能为空,请输入"); txtLayoutName.Focus(); return; } if (_GridLayoutList != null && _GridLayoutList.Exists(o => o.Name.Equals(txtLayoutName.Text))) { MessageBoxEx.Show("网格布局名称已存在,请重新输入"); txtLayoutName.Focus(); return; } //保存信息 GridLayoutInfo gridLayoutInfo = new GridLayoutInfo(); gridLayoutInfo.Name = txtLayoutName.Text; gridLayoutInfo.CreateTime = DateTime.Now; _GridLayoutList.Add(gridLayoutInfo); _CurGridLayoutMain._GridLayoutList = _GridLayoutList; try { saveLayoutInfo(); DevExpress.XtraGrid.GridControl grid = _XtraGrid as DevExpress.XtraGrid.GridControl; if (grid != null) { GridLayoutManager.SaveXtraGridState(grid, gridLayoutInfo); } else { PivotGridEx pGrid = _XtraGrid as PivotGridEx; PivotGridHelper.Instance.SavePivotGridLayout(_ContainerForm, pGrid); } lstLayoutNames.Items.Insert(0, new ListViewItem(txtLayoutName.Text)); setDefaultLayout(); txtLayoutName.Text = string.Empty; } catch (Exception ex) { MB.WinBase.ApplicationExceptionTerminate.DefaultInstance.ExceptionTerminate(ex); } }
/// <summary> /// 恢复XtraGrid 控件的UI 操作保存状态。 /// </summary> /// <param name="xtraGCtl"></param> public static void RestoreXtraGridState(DevExpress.XtraGrid.GridControl xtraGrid, GridLayoutInfo gridLayOutInfo) { try { string sectionName = GetXtraGridLayoutSectionName(xtraGrid); if (string.IsNullOrEmpty(sectionName)) { return; } if (System.IO.File.Exists(GRID_LAYOUT_FILE_PATH + sectionName + gridLayOutInfo.Name + ".xml")) { //add by aifang 2012-08-13 begin //判断状态保存日期是否大于动态列设置日期,如是,则生效,否则不生效。 DateTime dt = gridLayOutInfo.CreateTime; var clientRule = getXtraGridClientRule(xtraGrid); var dynamicSetting = XtraGridDynamicHelper.Instance.GetXtraGridDynamicSettingInfo(clientRule); if (dynamicSetting != null) { if (dynamicSetting.LastModifyDate.Subtract(dt).TotalMilliseconds > 0) { return; } } //end DevExpress.XtraGrid.Views.Grid.GridView gridView = xtraGrid.MainView as DevExpress.XtraGrid.Views.Grid.GridView; gridView.OptionsLayout.Columns.RemoveOldColumns = true; gridView.RestoreLayoutFromXml(GRID_LAYOUT_FILE_PATH + sectionName + gridLayOutInfo.Name + ".xml"); } } catch (Exception ex) { MB.Util.TraceEx.Write(string.Format("恢复XtrGrid布局失败,错误信息为:{0}", ex.Message)); } }
/// <summary> /// 保存XtraGrid 控件的UI 操作状态。 /// </summary> /// <param name="xtraGCtl"></param> public static void SaveXtraGridState(DevExpress.XtraGrid.GridControl xtraGrid, GridLayoutInfo gridLayOutInfo) { DevExpress.XtraGrid.Views.Grid.GridView gridView = xtraGrid.MainView as DevExpress.XtraGrid.Views.Grid.GridView; if (gridView == null) { return; } string sectionName = GetXtraGridLayoutSectionName(xtraGrid); if (string.IsNullOrEmpty(sectionName)) { return; } gridView.SaveLayoutToXml(GRID_LAYOUT_FILE_PATH + sectionName + gridLayOutInfo.Name + ".xml"); }
public static void DeleteXtraGridState(DevExpress.XtraGrid.GridControl xtraGrid, GridLayoutInfo gridLayOutInfo) { string sectionName = GetXtraGridLayoutSectionName(xtraGrid); if (string.IsNullOrEmpty(sectionName)) { return; } if (System.IO.File.Exists(GRID_LAYOUT_FILE_PATH + sectionName + gridLayOutInfo.Name + ".xml")) { System.IO.File.Delete(GRID_LAYOUT_FILE_PATH + sectionName + gridLayOutInfo.Name + ".xml"); } }