view;
///<summary>
/// 设置按钮列
/// </summary>
/// <param name="dataColumnName">数据字段名</param>
/// <param name="dataColumnName">数据字段名</param>
/// <param name="btnText">按钮文本</param>
/// <param name="skinName">按钮皮肤名</param>
/// <param name="image">按钮图片</param>
/// <param name="location">图片位置</param>
/// <param name="clickFunction">按钮Handler</param>
/// <param name="view">basevew</param>
/// <param name="viewType">viewtype</param>
public static void SetButtonColumn(
string dataColumnName, string btnText, string skinName, System.Drawing.Image image,
DevExpress.XtraEditors.ImageLocation location,
DevExpress.XtraEditors.Controls.ButtonPressedEventHandler clickFunction, DevExpress.XtraGrid.Views.Base.BaseView view, ViewType viewType)
RepositoryItemButtonEdit rib = new RepositoryItemButtonEdit();
rib.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
rib.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph;
rib.ButtonClick += clickFunction;
rib.Buttons[0].Caption = btnText;
if(skinName!="")
rib.LookAndFeel.SkinName = skinName;
rib.LookAndFeel.UseDefaultLookAndFeel = false;
if (image != null)
rib.Buttons[0].Image = image;
rib.Buttons[0].ImageLocation = location;
rib.Buttons[0].Visible = true;
switch (viewType)
case ViewType.GridView:
(view as DevExpress.XtraGrid.Views.Grid.GridView).Columns[dataColumnName].ColumnEdit = rib;
break;
case ViewType.BandView:
(view as DevExpress.XtraGrid.Views.BandedGrid.BandedGridView).Columns[dataColumnName].ColumnEdit = rib;
break;
default:
break;
public enum ViewType
GridView,
BandView
if (string.IsNullOrEmpty(_columnName))
return "column_" + DataColumnName.ToLower();
return _columnName;
set { _columnName = value; }
/// <summary>
/// sql 语句中的字段名称
/// </summary>
public string DataColumnName { get; set; }
/// <summary>
/// 可见性,默认true
/// </summary>
private bool? _visible;
public bool Visible
if (_visible == null)
return true;
return bool.Parse(_visible.ToString());
_visible = value;
/// <summary>
/// 分组,默认-1
/// </summary>
private int? _groupIndex;
public int GroupIndex
if (_groupIndex == null)
_groupIndex = -1;
return int.Parse(_groupIndex.ToString());
_groupIndex = value;
使用该代码 方法:
说明:动态制定的列 要与数据源中的列字段名(sql语句中的字段名) 一致
var view2 = DXGridControlHelper.GetColumnsView(gridControl1, new List<ColumnModel>() {
new ColumnModel(){ColumnTitle="ID",DataColumnName="Id"},//默认该列为显示,列名为column_id
new ColumnModel(){ColumnTitle="课件名称",GroupIndex=0,DataColumnName="Name"},//按照该列分组
new ColumnModel(){ColumnTitle="描述",DataColumnName="Description"},
new ColumnModel(){ColumnTitle="归属",DataColumnName="Objective"},
new ColumnModel(){ColumnTitle="图片",ColumnName="img",DataColumnName="ImgGif",Visible=false}
DataTable tab = cl.GetDataTable("select * from table_name");
gridControl1.MainView = view2;
gridControl1.DataSource = tab;