DevExpress中关于GridControl控件的一些常用属性设置方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraEditors.Repository;
using DevExpress.Utils;

namespace Tools
{
    public static class DevGridControl
    {
        /// <summary>
        /// 设置GridView的最合适列宽
        /// </summary>
        /// <param name="gridView1"></param>
        public static void BestFitColumns(GridView gridView)
        {
            gridView.BeginUpdate();
            gridView.BestFitMaxRowCount = 1000;
            gridView.OptionsView.ColumnAutoWidth = false;
            int iWidth = 0;
            foreach (GridColumn pGridColumn in gridView.Columns)
            {
                if (pGridColumn.Visible == false) continue;

                pGridColumn.OptionsColumn.FixedWidth = false;
                pGridColumn.OptionsColumn.AllowSize = true;
                pGridColumn.BestFit();

                iWidth += pGridColumn.Width;
            }
            if (gridView.GridControl != null)
            {
                if (iWidth < gridView.GridControl.Width)
                {
                    gridView.OptionsView.ColumnAutoWidth = true;
                    gridView.BestFitColumns();
                }
            }
            gridView.EndUpdate();
        }
        /// <summary>
        /// 设置GridView的基本属性,去掉右键弹出菜单,不能拖动列等属性
        /// </summary>
        /// <param name="gridView">Grid控件</param>
        public static void SetGridViewOptions(GridView gridView)
        {
            gridView.OptionsView.EnableAppearanceOddRow = false;
            gridView.OptionsSelection.EnableAppearanceFocusedCell = false;
            gridView.OptionsCustomization.AllowColumnMoving = false;
            gridView.OptionsCustomization.AllowGroup = false;
            gridView.OptionsCustomization.AllowFilter = false;
            gridView.OptionsCustomization.AllowSort = false;
            gridView.OptionsMenu.EnableColumnMenu = false;
            gridView.OptionsMenu.EnableFooterMenu = false;
            gridView.OptionsMenu.EnableGroupPanelMenu = false;
            gridView.OptionsView.ShowGroupPanel = false;//不显示分组
            gridView.OptionsView.EnableAppearanceEvenRow = true;
        }
        /// <summary>
        /// 根据列名设置列隐藏
        /// </summary>
        /// <param name="gridView">Grid控件</param>
        /// <param name="columnName">列名</param>
        public static void SetGridViewColumnVisible(GridView gridView, string columnName)
        {
            SetGridViewColumnVisible(gridView, columnName, false);
        }
        /// <summary>
        /// 根据列名设置列是否隐藏
        /// </summary>
        /// <param name="gridView">Grid控件</param>
        /// <param name="columnName">列名</param>
        /// <param name="isVisible">列是否隐藏</param>
        public static void SetGridViewColumnVisible(GridView gridView, string columnName, bool isVisible)
        {
            gridView.Columns[columnName].Visible = isVisible;
        }
        /// <summary>
        /// 根据列名设置列不可编辑
        /// </summary>
        /// <param name="gridView">Grid控件</param>
        /// <param name="columnName">列名</param>
        public static void SetGridViewColumnEdit(GridView gridView, string columnName)
        {
            SetGridViewColumnEdit(gridView, columnName, false);
        }
        /// <summary>
        /// 设置所有列不可编辑
        /// </summary>
        /// <param name="gridView">Grid控件</param>
        public static void SetGridViewColumnEdit(GridView gridView)
        {
            if (gridView != null)
                if (gridView.Columns != null)
                    foreach (GridColumn item in gridView.Columns)
                        item.OptionsColumn.AllowEdit = false;
        }
        /// <summary>
        /// 根据列名设置列是否可编辑
        /// </summary>
        /// <param name="gridView">Grid控件</param>
        /// <param name="columnName">列名</param>
        /// <param name="isEdit">列是否可以编辑</param>
        public static void SetGridViewColumnEdit(GridView gridView, string columnName, bool isEdit)
        {
            gridView.Columns[columnName].OptionsColumn.AllowEdit = isEdit;
        }
        /// <summary>
        /// 根据列名构建Grid中下拉列表
        /// </summary>
        /// <param name="gridView">Grid控件</param>
        /// <param name="ColumnName">列名</param>
        /// <param name="dataSC">下拉列表数据源</param>
        /// <param name="DisplayMember">显示数据</param>
        /// <param name="ValueMember">实际需要的数据</param>
        /// <param name="SCrows">数据行数</param>
        /// <param name="nullText">选择空显示内容</param>
        public static RepositoryItemLookUpEdit SetGridViewColumnLookUpEdit(GridView gridView, string ColumnName, object dataSC, string DisplayMember, string ValueMember, int SCrows, string nullText = "")
        {
            try
            {
                RepositoryItemLookUpEdit repositoryItemLookUpEdit1 = new RepositoryItemLookUpEdit();
                #region 下拉列表设置
                repositoryItemLookUpEdit1.AutoHeight = false;
                //    repositoryItemLookUpEdit1.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
                //new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
                repositoryItemLookUpEdit1.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] {
            new DevExpress.XtraEditors.Controls.LookUpColumnInfo(DisplayMember, DisplayMember)});
                repositoryItemLookUpEdit1.Name = "repositoryItemLookUpEdit1";
                repositoryItemLookUpEdit1.PopupFormMinSize = new System.Drawing.Size(22, 0);
                repositoryItemLookUpEdit1.ShowFooter = false;
                repositoryItemLookUpEdit1.NullText = nullText;
                repositoryItemLookUpEdit1.ShowHeader = false;
                repositoryItemLookUpEdit1.DataSource = dataSC;
                repositoryItemLookUpEdit1.DisplayMember = DisplayMember;
                repositoryItemLookUpEdit1.ValueMember = ValueMember;
                if (SCrows < 7)
                    repositoryItemLookUpEdit1.DropDownRows = SCrows;
                #endregion
                if (!string.IsNullOrEmpty(ColumnName))
                    gridView.Columns[ColumnName].ColumnEdit = repositoryItemLookUpEdit1;
                return repositoryItemLookUpEdit1;
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
            return null;
        }
        /// <summary>
        /// 根据列名和控件,构建linkButton
        /// </summary>
        /// <param name="gridView">表格控件</param>
        /// <param name="ColumnName">列</param>
        /// <returns></returns>
        public static RepositoryItemHyperLinkEdit SetGridViewColumnLinkBtn(GridView gridView, string ColumnName)
        {
            try
            {
                RepositoryItemHyperLinkEdit repositoryItemLookUpEdit1 = new RepositoryItemHyperLinkEdit();
                repositoryItemLookUpEdit1.AutoHeight = false;
                repositoryItemLookUpEdit1.Name = "repositoryItemLookUpEdit1";
                if (!string.IsNullOrEmpty(ColumnName))
                    gridView.Columns[ColumnName].ColumnEdit = repositoryItemLookUpEdit1;
                return repositoryItemLookUpEdit1;
            }
            catch (Exception ex)
            {
                Log.Write(ex);
                return null;
            }
        }

        /// <summary>
        /// 根据列名更新数据源
        /// </summary>
        /// <param name="gridView">Grid控件</param>
        /// <param name="ColumnName">列名</param>
        /// <param name="dataSC">下拉列表数据源</param>
        /// <param name="SCrows">数据行数</param>
        public static void SerGirdViewLoookUpEditSc(GridView gridView, string ColumnName, object dataSC, int SCrows)
        {
            if (gridView.Columns[ColumnName].ColumnEdit is RepositoryItemLookUpEdit)
            {
                ((RepositoryItemLookUpEdit)gridView.Columns[ColumnName].ColumnEdit).DataSource = dataSC;
                if (SCrows < 7)
                    ((RepositoryItemLookUpEdit)gridView.Columns[ColumnName].ColumnEdit).DropDownRows = SCrows;
            }
        }

        /// <summary>
        /// 向GridView添加列
        /// </summary>
        /// <param name="gridView"></param>
        /// <param name="nameAndFieldDic">显示名称与绑定字段字典</param>
        public static void AddGridViewColumns(GridView gridView, Dictionary<string, string> nameAndFieldDic)
        {
            foreach (var item in nameAndFieldDic)
            {
                GridColumn gc = new GridColumn();
                gc.Caption = item.Key;
                gc.FieldName = item.Value;
                gc.Name = "gridColumn" + item;
                gc.Visible = true;
                //gc.VisibleIndex = _visibleIndex++;
                gc.OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.False;
                gc.OptionsColumn.AllowMove = false;
                gc.OptionsColumn.AllowEdit = false;
                gridView.Columns.Add(gc);
            }
        }

        /// <summary>
        /// 向GridView添加列
        /// </summary>
        /// <param name="gridView"></param>
        /// <param name="nameAndFieldDic">列名数组</param>
        public static void AddGridViewColumns(GridView gridView, string[] columnNames)
        {
            foreach (var item in columnNames)
            {
                GridColumn gc = new GridColumn();
                gc.Caption = item;
                gc.FieldName = item;
                gc.Name = "gridColumn" + item;
                gc.Visible = true;
                //gc.VisibleIndex = _visibleIndex++;
                gc.OptionsColumn.AllowSort = DevExpress.Utils.DefaultBoolean.False;
                gc.OptionsColumn.AllowMove = false;
                gc.OptionsColumn.AllowEdit = false;
                gridView.Columns.Add(gc);
            }
        }
        /// <summary>
        /// 根据列名设置列的标题和单元的水平对齐方式
        /// </summary>
        /// <param name="gridView"></param>
        /// <param name="columnName"></param>
        /// <param name="cellHorzAlignment">列单元水平对齐方式</param>
        /// <param name="headerHorzAlignment">列标题水平对齐方式</param>
        public static void SetGridViewColumnHAlignment(GridView gridView, string columnName, HorzAlignment cellHorzAlignment,HorzAlignment headerHorzAlignment)
        {
            gridView.Columns[columnName].AppearanceCell.TextOptions.HAlignment = cellHorzAlignment;
            gridView.Columns[columnName].AppearanceHeader.TextOptions.HAlignment = headerHorzAlignment;
        }
        /// <summary>
        /// 设置所有列的标题和单元的水平对齐方式
        /// </summary>
        /// <param name="gridView"></param>
        /// <param name="cellHorzAlignment">列单元水平对齐方式</param>
        /// <param name="headerHorzAlignment">列标题水平对齐方式</param>
        public static void SetGridViewHAlignment(GridView gridView,HorzAlignment cellHorzAlignment, HorzAlignment headerHorzAlignment)
        {
            if (gridView != null)
            {
                if (gridView.Columns != null)
                {
                    foreach (GridColumn item in gridView.Columns)
                    {
                        item.AppearanceCell.TextOptions.HAlignment = cellHorzAlignment;
                        item.AppearanceHeader.TextOptions.HAlignment = headerHorzAlignment;
                    }
                }
            }

        }
    }
}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿经验

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值