ASPxGridView使用输入类型复选框删除多行

时间:2011-11-21 10:22:34

标签: asp.net .net webforms devexpress aspxgridview

我有一个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,删除此控件中的一行后,再次找到已删除的行,而不是获取第二行。

1 个答案:

答案 0 :(得分:0)

如果您只是从数据库中删除了行,则网格不知道您删除了行。使用DeleteRow方法删除行,使用RowDeleting / RowDeleted事件进行其他删除处理。 此外,您可以使用ASPxgridView选择功能而不是带有复选框的单元格模板。以下是删除多个ASPxGridView行的完整示例:

http://documentation.devexpress.com/#AspNet/CustomDocument3711

阅读“删除行”部分。