我通过编辑命令按钮向用户显示了一个ASPxGridView。当用户单击编辑命令按钮时,所选行将变为编辑表单。
在编辑表单中,我有一个控件,当点击它将通过javascript进行自定义回调时,自定义回调处理程序将更改所选行的值并调用UpdateEdit()以保存更改的值并返回常规网格视图布局。
但是,新值永远不会保存到基础数据源,事实上,如果我调试DataSourceControl的ExecuteUpdate方法,我会看到oldValues集合中的更新值,而值集合具有原始值。
从editform中的控件调用的javascript:
javascript:grid.PerformCallback("CloseOrder");
在服务器上运行的自定义回调处理程序:
protected void gdOrders_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) {
if (e.Parameters == "CloseOrder") {
var row = gdOrders.GetDataRow(gdOrders.EditingRowVisibleIndex);
row["Status"] = 5;
gdOrders.UpdateEdit();
}
}
答案 0 :(得分:1)
我找到了以下解决方案。我不确定这是正确的方法,但它有效。
protected void gdOrders_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) {
if (e.Parameters == "CloseOrder") {
gdOrders.RowUpdating += (s, e1) => { e1.NewValues["Status"] = 5; };
gdOrders.UpdateEdit();
}
}