我有一个dx:ASPxGridView
,其中包含一个输入类型复选框列。当我从一个接一个地从下到上删除时,它正在删除正常,但是当从上到下删除时它不起作用。
这是我的代码:
protected void grdItems_CustomCallback(object sender,
DevExpress.Web.ASPxGridView.ASPxGridViewCustomCallbackEventArgs e)
{
if (e.Parameters.StartsWith("del"))
{
var PurchaseCol = grdItems.Columns["Purchase"] as GridViewDataColumn;
var BoCustomer = BoCustomerPO;
for (int i = 0; i < grdItems.VisibleRowCount; i++)
{
var order = (HtmlInputCheckBox)grdItems.FindRowCellTemplateControl(i, PurchaseCol, "selectRec");
if(order.Checked == true)
{
string orderID = Convert.ToString(order.Value);
BOCustomerPOBL.DeletePO(BoCustomerPO, orderID);
}
}
BindGrid();
}
}
FindRowCellTemplateControl
,删除此控件中的一行后,再次找到已删除的行,而不是获取第二行。
答案 0 :(得分:0)
如果您只是从数据库中删除了行,则网格不知道您删除了行。使用DeleteRow方法删除行,使用RowDeleting / RowDeleted事件进行其他删除处理。 此外,您可以使用ASPxgridView选择功能而不是带有复选框的单元格模板。以下是删除多个ASPxGridView行的完整示例:
http://documentation.devexpress.com/#AspNet/CustomDocument3711
阅读“删除行”部分。