Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        /// <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));
            }
        }
Ejemplo n.º 3
0
        /// <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");
        }
Ejemplo n.º 4
0
        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");
            }
        }