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;
}
}
}
}
}
}
DevExpress中关于GridControl控件的一些常用属性设置方法
最新推荐文章于 2023-04-06 14:33:28 发布