我的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的文档上也没找到答案。