Я использую этот DataTable
как DataSource
для GridView
:
var table = new DataTable();
table.Columns.Add("ID");
table.Columns.Add("Title");
table.Columns.Add("Subject");
... //filling DataTable
myDataGridView.DataSource=table;
Я хочу получить значение столбца ID
щелкнутой строки DataGridView
, так что я должен использовать так?
private void myDataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
//??
}
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value
Прежде всего, мой ответ предполагает, что вы работаете с DataGridView
даже если вы написали (и отметили), что используете GridView
.
Вот код, который вы хотите:
if (e.RowIndex >= 0) {
var row = myGridView.Rows[e.RowIndex].DataBoundItem as DataRowView;
if (row != null) {
string id = row["ID"].ToString();
}
}
Этот код просто берет DataRowView
к DataGridView
строке DataGridView
и вытаскивает ее значение поля "ID", но только при двойном щелчке строки без заголовка.
Теперь вы написали, что хотите получить идентификатор, когда нажата строка, и вы показали нам обработчик CellContentDoubleClick
. Приведенный выше код будет работать при использовании CellContentDoubleClick
но мне интересно, можете ли вы использовать CellDoubleClick
. Разница в том, что пользователю действительно нужно щелкнуть отображаемое значение ячейки, чтобы запустить CellContentDoubleClick
, но если вы используете CellContentDoubleClick
пользователю нужно будет только щелкнуть в любом месте строки (включая заголовок строки), чтобы запустить событие. Это может сделать ваше приложение немного проще в использовании.
Пройдите следующий код:
GridViewRow gvrow = (GridViewRow)((ImageButton)e.CommandSource).NamingContainer;
string columnvalue= gvrow.Cells[0].Text;
вы пытаетесь это сделать?
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int y = e.RowIndex;
int x = e.ColumnIndex;
}
private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
int y1 = e.RowIndex;
int x1 = e.ColumnIndex;
}
DataGridView
иGridView
! Я редактировал Q!