我有我的gridview,其中数据源是List<T>
. 当我尝试在我的 buttonRemove_Click() 函数中从 gridview 中删除一个项目时,另一个处理 RowDeleting 事件的函数被调用,我也从中删除了该项目List<T>
。问题是,如果我选择从 gridview 中删除多个项目,gridview 的索引和我的List<T>
un-syncs 的索引。例如,我的 gridview 和 List 中有 10 个项目,我尝试删除最后两个项目。这是我在 buttonRemove_Click 函数中的操作方法
foreach (GridViewRow row in gridViewItems.Rows)
{
CheckBox cb = (CheckBox)row.FindControl("checkBox");
if (cb != null && cb.Checked)
{
gridViewItems.DeleteRow(row.DataItemIndex);
}
}
然后在 RowDeleting 函数中,我将首先接收索引 8 的事件,我将其删除。现在,当谈到删除最后一项(索引 9)时,它会抛出异常,因为索引超出范围。我该如何解决这个问题?
我认为如果我尝试以相反的顺序删除行,即从最高索引开始,问题将得到解决。谁能告诉这怎么做?