在gridview中填充记录
我有一个gridview并从列表中绑定其中的记录。我需要从列表中删除多行在gridview中填充记录,gridview,Gridview,我有一个gridview并从列表中绑定其中的记录。我需要从列表中删除多行 int deleled=0; foreach(gridviewrow row in gridview1.rows) { checkbox chkSelectedItem=(checkbox)row.findcontrol("chkSelectedItem"); if(chkSelectedItem.checked) { int id=(int)gridview1.DataKeys[row.Ro
int deleled=0;
foreach(gridviewrow row in gridview1.rows)
{
checkbox chkSelectedItem=(checkbox)row.findcontrol("chkSelectedItem");
if(chkSelectedItem.checked)
{
int id=(int)gridview1.DataKeys[row.RowIndex].Values["Id"];
Person person=new Person();
person.Id=id;
deleted+=person.Delete(user);
gridview1.DeleteRow(row.rowindex);
}
}
gridview1.datasource=persons;
gridview1.databind();
在这里,我有一个单独的类用于删除用户…这很好,我需要删除数据库中选定的记录以及gridview,我必须在gridview中显示其他记录…问题是我在Persons表中有许多用户的记录,我需要在gridview中显示特定的人员详细信息
删除记录工作正常,这方面没有问题,但当我在gridview中删除行时,它会跳过索引…例如,如果在总共10条记录中选择记录1,3,5,7,9,则在执行
gridview1.DeleteRow(row.rowindex);
第二条记录(在第一个索引处)填充第0个索引,当控件获取id时,它只获取第四条记录,而不是第三条记录……我甚至尝试使用列表获取所选索引,并尝试使用列表中的索引删除记录,这也显示出同样的问题,我可以理解控制流程……但我不知道如何解决这个问题……有人能帮我解决吗如果您的人员列表不是很大,一种方法是首先解除GridView数据源的绑定,从人员列表中删除人员,不要自己删除GridView的行,然后将该列表绑定到其数据源。感谢编码器的帮助,我尝试在一个列表中收集索引,并以相反的顺序在一个单独的循环中执行该列表,工作正常,感谢您的响应