我希望以编程方式从GridView
中删除。
我已经实现了gridview的OnRowDeleting="Delete_Record"
事件处理程序,当用户单击GridView上的删除链接时会调用它,但由于似乎没有选择行,因此执行删除的代码不会工作
为了进一步测试我可以单击选择,选择行(注释掉选择后面的代码)然后如果我单击删除代码运行正常。
有没有办法让行被选为Delete_Record
的第一步?
GridViewRow row = gvResults.SelectedRow;
string id = row.Cells[1].Text;
ASB_DataDataContext db = new ASB_DataDataContext();
var delCase = from dc in db.Inputts
where dc.counter == Convert.ToInt32(id)
select dc;
foreach (var nCase in delCase)
{
db.Inputts.DeleteOnSubmit(nCase);
db.SubmitChanges();
}
答案 0 :(得分:2)
由于您正在使用该事件,因此您应该将所需索引作为GridViewDeleteEventArgs e
的一部分,应该像e.RowIndex
然后,您可以grid.Rows[e.RowIndex].Cells[1].Text
答案 1 :(得分:0)
您可以通过以下代码实现
public void GridView1_Delete_Record (Object sender, GridViewDeleteEventArgs e)
{
string id = gridView1.Rows[e.RowIndex].Cells[2].Text;
ASB_DataDataContext db = new ASB_DataDataContext();
var delCase = from dc in db.Inputts
where dc.counter == Convert.ToInt32(id)
select dc;
foreach (var nCase in delCase)
{
db.Inputts.DeleteOnSubmit(nCase);
db.SubmitChanges();
} Message.Text = "";
}
答案 2 :(得分:0)
将db.Inputts
设置为datagrid的DataSource。只需在代码后添加下两行:
datagridView1.DataSource = null;
datagridView1.DataSource = db.Inputts;
将datasource设置为null用于清除datagrid中的先前数据;