+ -
当前位置:首页 → 问答吧 → winform中使用datagridview的问题

winform中使用datagridview的问题

时间:2011-12-11

来源:互联网

各位好友,在winform 中使用datagridview的时候。

dgvEmployeeList.AutoGenerateColumns = false;

在作数据绑定的时候,如果将
  dgvEmployeeList.ColumnCount = 11;
  dgvEmployeeList.AutoGenerateColumns = false;
  dgvEmployeeList.DataSource = C_BaseInfo.GetAllEmployee().Tables[0].DefaultView;
  dgvEmployeeList.Columns[0].DataPropertyName = "LoginId";
  dgvEmployeeList.Columns[1].DataPropertyName = "Name";
  dgvEmployeeList.Columns[2].DataPropertyName = "Suser";
  dgvEmployeeList.Columns[3].DataPropertyName = "Sex";
系统就在取单元格的值时:
 txtEmpployCode.Text = this.dgvEmployeeList[0, dgvEmployeeList.CurrentCell.RowIndex].Value.ToString();
以上这样是可以。
但使用:
 txtEmail.Text = this.dgvEmployeeList["LoginId", dgvEmployeeList.CurrentCell.RowIndex].Value.ToString();

用列名就不行。

但去掉
dgvEmployeeList.AutoGenerateColumns = false;

系统就不能正常取出值。

不知各位可遇到这种问题。

作者: changyuwen   发布时间: 2011-12-11

你自己增加的列的名字(是名字,不是DataPropertyName )是叫 LoginId 吗,好像不是吧

作者: bdmh   发布时间: 2011-12-11

第一列的列名错了。。。。

作者: mizuho_2006   发布时间: 2011-12-11

引用 1 楼 bdmh 的回复:
你自己增加的列的名字(是名字,不是DataPropertyName )是叫 LoginId 吗,好像不是吧

好象是的了。

作者: flyerwing   发布时间: 2011-12-11

列名就是LoginId ,没有错的。
dgvEmployeeList.Columns[0].DataPropertyName = "LoginId";

作者: changyuwen   发布时间: 2011-12-11

因为一去掉,dgvEmployeeList.AutoGenerateColumns = false;
系统一切是正常的。只是将所有列都显示出来了。

我现在想法就是想按照自己定义的来显示列数

作者: changyuwen   发布时间: 2011-12-11

没有人知道原因吗

作者: changyuwen   发布时间: 2011-12-11

貌似"LoginId"只是datagridview的第0列的数据绑定名,而不是第0列的列名,使用autogeneratecol=true后,datagridview会自动生成列,这时的列名与后台的数据源的各字段(属性)名一致,所以你可以渠道,而使用false时,你要自定定义列名,如果你定义的列名是"Huli",绑定了LoginId,那就得这样用:
txtEmail.Text = this.dgvEmployeeList["Huli", dgvEmployeeList.CurrentCell.RowIndex].Value.ToString();

作者: etudiant6666   发布时间: 2011-12-11

相关阅读 更多

热门下载

更多