给datagridview写一个dataBind() 方法

jimmyroc 2009-05-23 01:25:48
datagridview 绑定的方式是 直接 设置dataSource来添加数据源,绑定过程它根据你控件上的列的设置和autogeneratecolumns来自动绑定,
由于开发需要,手工来绑定,将一个dataTable绑定到datagridview,哪位写这样的方法分享下吧

...全文
186 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimmyroc 2009-05-23
  • 打赏
  • 举报
回复

private DataTable m_dataSource;
public new DataTable DataSource
{
set { m_dataSource = value; }
}
public void DataBind()
{
this.Rows.Clear();
this.Columns.Clear();

///
///添加表头
///
for (int i = 0; i < m_dataSource.Columns.Count; i++)
{
DataGridViewColumn column = new DataGridViewTextBoxColumn();
column.HeaderText = m_dataSource.Columns[i].ColumnName;
this.Columns.Add(column);

}
for (int j = 0; j < m_dataSource.Rows.Count; j++)
{
//添加一行
DataGridViewRow collapseRow = new DataGridViewRow();

DataGridViewTextBoxCell cell;
//此处代码是有缺陷的,因为我直接把表中的每个字段绑定到DataGridViewTextBoxCell类型,
//不能接受用户设置来生成类型,比如DataGridViewComboBoxColumn等

for (int i = 0; i < m_dataSource.Columns.Count; i++)
{
cell = new DataGridViewTextBoxCell();
cell.Value = m_dataSource.Rows[j][i].ToString();
collapseRow.Cells.Add(cell);
}
this.Rows.Add(collapseRow);
}
}

这是我自定义的一个datagridview类里写的一个方法,缺陷的地方我写在注释的地方,改怎么改
lovebenben 2009-05-23
  • 打赏
  • 举报
回复
up
willwayer 2009-05-23
  • 打赏
  • 举报
回复
手工来绑定可以通过设置dataGrideViewColumn.DataPropertyName 属性来实现把
jimmyroc 2009-05-23
  • 打赏
  • 举报
回复
3L的意思理解错了,我就是要自己写绑定函数
wuyq11 2009-05-23
  • 打赏
  • 举报
回复
List<T> lst= new List<T>();
dataGridView1.DataSource = lst;
jimmyroc 2009-05-23
  • 打赏
  • 举报
回复
你这个方法 refelctor 都找不到啊,不是datagridview 命名空间下的吧
nszhang 2009-05-23
  • 打赏
  • 举报
回复
用Itemdatabound()试一下,怎么用网上搜下



111,117

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧