我的web界面有两个aspxGridView控件(这个是DevExpress中的控件),分别为ASPxGridView1、ASPxGridView2。我想在ASPXGridView1的ASPxGridView1_RowDeleting事件执行时重新绑定ASPxGridView2的数据源来刷新ASPxGridView2,但是没有成功!(ASPxGridView1的数据是可以刷新的)请高手指点下,代码如下:
 protected void ASPxGridView1_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
        {
            try
            {
                DataTable dataTable = (DataTable)Session["dtPart"];
                e.Cancel = true;
                dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns["SINo"], dataTable.Columns["BoschPN"] };
                dataTable.Rows.Remove(dataTable.Rows.Find(new object[] { e.Keys["SINo"].ToString(), e.Keys["BoschPN"].ToString() }));
                //还应该删除package表中的记录
                ASPxGridView1.DataSource = dataTable;
                ASPxGridView1.DataBind();
                DataTable dtPackage = (DataTable)Session["dtPackage"];
                DataRow[] rows = dtPackage.Select("BoschPN='" + e.Keys["BoschPN"].ToString() + "'");
                foreach (DataRow row in rows)
                {
                    dtPackage.Rows.Remove(row);
                }  
               ASPxGridView2.DataSource = dtPackage;
               ASPxGridView2.DataBind();              
             }
            catch (Exception ex)
            {
            }                      
        }
感谢大家的帮助,问题我已经解决了,主要是dev的控件的问题,解决方法是在ASPxGridView1
EndCallback时perform ASPXGridView2的callback
遇到同样问题的可参看:http://www.devexpress.com/Support/Center/p/K18387.aspx
ASPxGridView2.DataSource = dtPackage;
主要看一下这变的dtPackage 是不是你需要的数据
执行完ASPxGridView1_RowDeleting事件后dtPackage是我想要的数据,数据也是正确的,可是界面没有刷新。
@rayna: 还有其他的地方对这个ASPxGridView2 进行绑定的吗?
@chenping2008: 还有ASPxGridView1_Inserting,ASPxGridView1_updateing事件,都是同样的不刷新数据
@rayna: 请问下,你用过dev的控件吗?我原本是想在ASPxGridView1_RowInserted事件中再去绑定更新ASPxGridView2的数据,但是ASPxGridView1_Inserting执行后并没有触发ASPxGridView1_RowInserted事件,不知道是不是要设置什么属性,dev的文档上也没找到答案。