我有一个datagridview dgPersons
,其内容与数据库绑定(列:idPerson
,personName
)..以相同的形式我有文本框txtCodePerson
,{{1 }}
我通过填写文本框并点击txtPersonName
将数据添加到数据库中,然后重新打印数据以使新行在datagridview上可见
现在..我想专注于我最近添加的行,从btnSave
获取值,并在txtCodePerson
列
代码:
idPerson
但它没有用..添加一行后,所选行自动转到第一行
注意:选择最后一行将无法执行我想要的操作,因为datagridview数据在绑定数据后在String searchValue = txtCodePerson.Text;
dgPersons.ClearSelection();
int rowIndex = -1;
foreach (DataGridViewRow row in dgPersons.Rows)
{
if (row.Cells[0].Value.ToString().Equals(searchValue))
{
rowIndex = row.Index;
break;
}
}
列上使用alphabitcally
答案 0 :(得分:2)
您可以找到其对应列值等于指定文本的行。然后将其设置为当前行。
例如,如果您要查找其idPerson
列等于txtCodePerson
文本的行,则可以使用以下代码:
var searchValue = txtCodePerson.Text;
var row = dataGridView1.Rows.Cast<DataGridViewRow>()
.Where(x => !x.IsNewRow)
.Where(x => ((DataRowView)x.DataBoundItem)["idPerson"].ToString().Equals(searchValue))
.FirstOrDefault();
this.dataGridView1.CurrentCell = row.Cells[0];