我正在使用DataGridView
有两个TextBoxColumn
和一个DataGridViewButtonColumn
。
作为 datasource ,我将DataTable
绑定为三列:“ID”,“Name”,“姓氏“,但我只需要显示最后两列,所以在我的数据网格中,我只定义Name
和Surname
(以及按钮列)设置AutoGenerateColumns
属性等于false
。
现在,当点击一行上的按钮时,我需要使用“ID”字段...
从当前行获取“ID”值的正确方法是什么?
答案 0 :(得分:1)
如果要显示其他列,我会留下ID列,并通过将Columns["ID"].Visible
设置为false来隐藏它。然后,您只需访问列中的数据,但不会在屏幕上显示。
答案 1 :(得分:0)
gridview.Rows[gridview.CurrentRow.Index].Cells["id"].Value
您将获得当前行的“id”值
答案 2 :(得分:0)
隐藏某些内容.Visible
不起作用。尝试使用DataView
和BindingSource
。
见link。
有filters
效果非常好。
像这样:
BindingSource tSource = new BindingSource();
DataView view = new DataView(_table);
tSource.DataSource = view;
我在这里找到一行:
DataRow row = CurrentRow(_dataGridView);
以下是实施:
public static DataRow CurrentRow(DataGridView aGrid)
{
CurrencyManager xCM =
(CurrencyManager)aGrid.BindingContext[aGrid.DataSource, aGrid.DataMember];
DataRowView xDRV = (DataRowView)xCM.Current;
return xDRV.Row;
}
这样的事情应该有效。
希望这对你有帮助!