ASPxGridView DeleteRow不会在另一个控件回调上删除

时间:2017-07-28 06:34:16

标签: c# asp.net gridview devexpress aspxgridview

我正在使用DEVExpress的gridview并使用此代码从另一个控件的customcallback中删除所选的gridview行,

  

GridFrom.DeleteRow(int.Parse(rowKey [2]));

检索正确的visibleIndex,但不从gridview中删除该行。数据绑定也不会刷新gridview的数据,它需要刷新页面才能更新数据

    protected void ASPxTreeList1_CustomCallback(object sender, DevExpress.Web.ASPxTreeList.TreeListCustomCallbackEventArgs e)
    {
        string[] rowKey = e.Argument.Split('|');

        string strConnectionString = ConfigurationManager.ConnectionStrings["dbname"].ConnectionString;
        using (SqlConnection conn = new SqlConnection(strConnectionString))
        {
            string query = "DELETE FROM Table WHERE id=@id";

            using (SqlCommand cmd = new SqlCommand(query, conn))
            {
                conn.Open();
                cmd.Parameters.AddWithValue("@id", rowKey[0]);
                cmd.ExecuteNonQuery();
                conn.Close();
            }

        }
        GridFrom.DeleteRow(int.Parse(rowKey[2])); //rowKey[2] is the visibleIndex
        GridFrom.DataBind();
    }
}

1 个答案:

答案 0 :(得分:0)

  

需要刷新页面才能更新数据

您没有看到网格更改,因为在 ITS OWN 回调期间 ASPxTreeList会更新。

作为一种可能的解决方案,禁用ASPxTreeList的回调或使用网格的CustomCallback删除网格行(以类似的方式)。

<dx:ASPxTreeList ID="ASPxTreeList1" runat="server" EnableCallbacks="false">
</dx:ASPxTreeList>

查看The concept of callbacks - Why is it impossible to update external control data during a callback to another control学习指南。