最近使用了DevExpress Grid控件,做了一下简单的封装,方便使用。
#region 全选/全消
public static void SelectAllOrNone(DevExpress.XtraGrid.Views.Grid.GridView gridView1, bool OpFlag)
{
for (int i = 0; i < gridView1.RowCount; i++)
{
gridView1.SetRowCellValue(i, gridView1.Columns["ck"], OpFlag);
}
}
#endregion
#region 导出Excel
public static void ExportToExcel(DevExpress.XtraGrid.Views.Grid.GridView gridView1, string FileName)
{
if (XtraMessageBox.Show("您确认导出Excel?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
string fileName = InitSaveFileDialog("EXCEL文件(*.xls)|*.xls");
if (fileName.Trim() != "")
{
XlsExportOptions xlsoption = new XlsExportOptions();
xlsoption.ExportMode = XlsExportMode.SingleFile;
xlsoption.TextExportMode = TextExportMode.Text;
xlsoption.SheetName = FileName;
gridView1.ExportToXls(fileName, xlsoption);
}
}
}
#region 删行
public static void DeleteRow(DevExpress.XtraGrid.Views.Grid.GridView gridView1)
{
gridView1.DeleteRow(gridView1.FocusedRowHandle);
}
#endregion
#region 增行
public static void AddRow(DevExpress.XtraGrid.Views.Grid.GridView gridView1)
{
gridView1.AddNewRow();
}
#endregion
#region 显示行号
public static void DisplayRowNumber(DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator)
{
e.Info.DisplayText = Convert.ToString(e.RowHandle + 1);
}
}
#endregion
#region 主从表模式
public static DataTable MainDetailData(DataSet dsMain, DataSet dsDetail,DataSet dsDetailDetail, string MainColumn, string DetailColumn,string DeitalMainColumn,string DetailDetailColumn)
{
dsMain.Tables[0].TableName = "Main";
dsDetail.Tables[0].TableName = "Detail";
dsDetailDetail.Tables[0].TableName = "DetailDetail";
DataTable dtDetail = dsDetail.Tables[0];
DataTable dtDetailDetail = dsDetailDetail.Tables[0];
dsDetail.Tables.Remove(dtDetail);
dsDetailDetail.Tables.Remove(dtDetailDetail);
dsMain.Tables.Add(dtDetail);
dsMain.Tables.Add(dtDetailDetail);
DataColumn colMain = dsMain.Tables["Main"].Columns[MainColumn];
DataColumn colDetail = dsMain.Tables["Detail"].Columns[DetailColumn];
DataColumn colDetailMain = dsMain.Tables["Detail"].Columns[DeitalMainColumn];
DataColumn colDetailDetail = dsMain.Tables["DetailDetail"].Columns[DetailDetailColumn];
dsMain.Relations.Add("Detail", colMain, colDetail, false);
dsMain.Relations.Add("DetailDetail", colDetailMain, colDetailDetail, false);
return dsMain.Tables[0];
}
#endregion
#region 初始化grid 属性
public static void initGridView(DevExpress.XtraGrid.Views.Grid.GridView gridView1, bool ColumnAutoWidthFlag=true)
{
gridView1.IndicatorWidth = 40;
if (ColumnAutoWidthFlag)
{
gridView1.OptionsView.ColumnAutoWidth = true;
gridView1.BestFitColumns();
}
else
{
gridView1.OptionsView.ColumnAutoWidth = false;
gridView1.BestFitColumns();
}
gridView1.OptionsView.ShowGroupPanel = false;
//gridView1.OptionsBehavior.Editable = false;
//gridView1.Columns["UserName"].Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Left;
}
#endregion