DataGridView綁定
今早又一杰作,雖然不完美,但還湊合用,不作過多注釋,給初學(xué)者動(dòng)腦筋的機(jī)會(huì),學(xué)會(huì)看懂別人的代碼和思路,特別像我這些土代碼,更可以磨練你的耐心 -_-#
1 Grid 實(shí)體類
2 Grid操作類
public class GridBind
{
public GridBind()
{
}

/// <summary>
/// 給DataGridView添加列
/// </summary>
/// <param name="eDataGridView"></param>
/// <param name="eList"></param>
public static void AddColumn(DataGridView eDataGridView, List<GridEntity> eList)
{
foreach (GridEntity mGridEntity in eList)
{
eDataGridView.Columns.Add(getColumn(mGridEntity));
}
}

/// <summary>
/// 取得要添加的列
/// </summary>
/// <param name="eGridEntity"></param>
/// <returns></returns>
private static DataGridViewColumn getColumn(GridEntity eGridEntity)
{
switch (eGridEntity.ColumnType)
{
case "Bool":
DataGridViewColumn mColBool = new DataGridViewCheckBoxColumn();
mColBool.Name = eGridEntity.DataPropertyName;
mColBool.DataPropertyName = eGridEntity.DataPropertyName;
mColBool.HeaderText = eGridEntity.HeaderText;
mColBool.Width = eGridEntity.Width;
mColBool.Frozen = eGridEntity.IsFrozen;
return mColBool;
default:
DataGridViewColumn mColTextBox = new DataGridViewTextBoxColumn();
mColTextBox.Name = eGridEntity.DataPropertyName;
mColTextBox.DataPropertyName = eGridEntity.DataPropertyName;
mColTextBox.HeaderText = eGridEntity.HeaderText;
mColTextBox.Width = eGridEntity.Width;
mColTextBox.Frozen = eGridEntity.IsFrozen;
return mColTextBox;
}
}
}
3 調(diào)用方法
/// <summary>
/// 綁定列表
/// </summary>
/// <param name="eDataGridView">DataGridView名</param>
/// <param name="eGridName">在Sys_GridList數(shù)據(jù)表中對應(yīng)的列表名</param>
protected void BaseBindGrid(DataGridView eDataGridView, string eGridName)
{
eDataGridView.Columns.Clear();
DAL.BaseForm.DALGrid mDALGrid = new DY.DyErp.DAL.BaseForm.DALGrid();
List<Common.GridEntity> mGridEntityList = new List<DY.Common.GridEntity>();
foreach (DataRow mDataRow in mDALGrid.getColumnList(eGridName).Rows)
{
Common.GridEntity mGridEntity = new DY.Common.GridEntity();
mGridEntity.GridName = mDataRow["GridName"].ToString();
mGridEntity.DataPropertyName = mDataRow["DataPropertyName"].ToString();
mGridEntity.HeaderText = mDataRow["HeaderText"].ToString();
mGridEntity.Width = Convert.ToInt32(mDataRow["Width"]);
mGridEntity.ColumnType = mDataRow["ColumnType"].ToString();
mGridEntity.IsFrozen = Convert.ToBoolean(mDataRow["IsFrozen"]);
mGridEntity.SortNo = Convert.ToInt32(mDataRow["SortNo"]);
mGridEntityList.Add(mGridEntity);
}
DY.Common.GridBind.AddColumn(eDataGridView, mGridEntityList);
}
1 Grid 實(shí)體類
1
public class GridEntity
2
{
3
public GridEntity()
4
{
5
}
6
7
private string _GridName;
8
private string _DataPropertyName;
9
private string _HeaderText;
10
private string _ColumnType;
11
private int _Width;
12
private bool _IsFrozen;
13
private int _SortNo;
14

38
39

63
64

88
89

113
114

130
131

148
149

165
166
167
168
}
public class GridEntity2
{3
public GridEntity() 4
{5
}6

7
private string _GridName;8
private string _DataPropertyName;9
private string _HeaderText;10
private string _ColumnType;11
private int _Width;12
private bool _IsFrozen;13
private int _SortNo;14

38
39

63
64

88
89

113
114

130
131

148
149

165

166

167
168
}2 Grid操作類
public class GridBind
{
public GridBind()
{
}
/// <summary>
/// 給DataGridView添加列
/// </summary>
/// <param name="eDataGridView"></param>
/// <param name="eList"></param>
public static void AddColumn(DataGridView eDataGridView, List<GridEntity> eList)
{
foreach (GridEntity mGridEntity in eList)
{
eDataGridView.Columns.Add(getColumn(mGridEntity));
}
}
/// <summary>
/// 取得要添加的列
/// </summary>
/// <param name="eGridEntity"></param>
/// <returns></returns>
private static DataGridViewColumn getColumn(GridEntity eGridEntity)
{
switch (eGridEntity.ColumnType)
{
case "Bool":
DataGridViewColumn mColBool = new DataGridViewCheckBoxColumn();
mColBool.Name = eGridEntity.DataPropertyName;
mColBool.DataPropertyName = eGridEntity.DataPropertyName;
mColBool.HeaderText = eGridEntity.HeaderText;
mColBool.Width = eGridEntity.Width;
mColBool.Frozen = eGridEntity.IsFrozen;
return mColBool;
default:
DataGridViewColumn mColTextBox = new DataGridViewTextBoxColumn();
mColTextBox.Name = eGridEntity.DataPropertyName;
mColTextBox.DataPropertyName = eGridEntity.DataPropertyName;
mColTextBox.HeaderText = eGridEntity.HeaderText;
mColTextBox.Width = eGridEntity.Width;
mColTextBox.Frozen = eGridEntity.IsFrozen;
return mColTextBox;
}
}
}3 調(diào)用方法
/// <summary>
/// 綁定列表
/// </summary>
/// <param name="eDataGridView">DataGridView名</param>
/// <param name="eGridName">在Sys_GridList數(shù)據(jù)表中對應(yīng)的列表名</param>
protected void BaseBindGrid(DataGridView eDataGridView, string eGridName)
{
eDataGridView.Columns.Clear();
DAL.BaseForm.DALGrid mDALGrid = new DY.DyErp.DAL.BaseForm.DALGrid();
List<Common.GridEntity> mGridEntityList = new List<DY.Common.GridEntity>();
foreach (DataRow mDataRow in mDALGrid.getColumnList(eGridName).Rows)
{
Common.GridEntity mGridEntity = new DY.Common.GridEntity();
mGridEntity.GridName = mDataRow["GridName"].ToString();
mGridEntity.DataPropertyName = mDataRow["DataPropertyName"].ToString();
mGridEntity.HeaderText = mDataRow["HeaderText"].ToString();
mGridEntity.Width = Convert.ToInt32(mDataRow["Width"]);
mGridEntity.ColumnType = mDataRow["ColumnType"].ToString();
mGridEntity.IsFrozen = Convert.ToBoolean(mDataRow["IsFrozen"]);
mGridEntity.SortNo = Convert.ToInt32(mDataRow["SortNo"]);
mGridEntityList.Add(mGridEntity);
}
DY.Common.GridBind.AddColumn(eDataGridView, mGridEntityList);
}

浙公網(wǎng)安備 33010602011771號(hào)