知道要查询的列的名称,如何从DataGridView中当前选定记录的该列中提取值?
IOW,如果我有一个名为id,Date,Time,Space的列的DataGridView,并且我想要当前所选行的Space列的值,我该如何将该值赋给String变量?
在伪代码中,我希望它类似于:
String s = dataGridView1.CurrentRow["Space"].ToString();
......但我确定它并不是那么简单。
答案看起来不错,但是有没有办法从当前行获取不响应dataGridView事件的值?我需要将值与被点击的dataGridView或任何其他事件分开。 IOW:有没有办法获得当前行?
答案 0 :(得分:1)
在Grid_RowDataBound
事件中
protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItem == null)
return;
DataRowView row = e.Row.DataItem as DataRowView;
if(row["Space"] != null)
{
string s = row["Space"].ToString();
//do stuff
}
}
答案 1 :(得分:1)
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
{
string s = dataGridView1.Rows[e.RowIndex].Cells["Space"].Value.ToString();
}
}
答案 2 :(得分:1)
您可以使用
dataGridView1.CurrentRow.Cells[yourColumn]
如果有当前行,则访问当前行 ..即使你打开MultiSelect,也可以随时使用
dataGridView1.SelectedRows[0].Cells[yourColumn]
访问第一个选定的行..
答案 3 :(得分:0)
我认为这样可行:
private string GetCurrentOrFirstValOfColumn(string colName)
{
String colVal = String.Empty;
DataGridViewRow dgvr = dataGridViewFileContents.CurrentRow;
if (null != dgvr.Cells[colName].Value)
{
colVal = dgvr.Cells[colName].Value.ToString();
}
return colVal;
}