0

我有一个带有编辑命令按钮的 ASPxGridView 显示给用户。当用户单击编辑命令按钮时,选定的行将变为编辑表单。

在编辑表单中,我有一个控件,单击该控件时将通过 javascript 执行自定义回调,然后自定义回调处理程序将更改所选行上的值并调用 UpdateEdit() 以保存更改的值并返回到常规网格视图布局.

但是,新值永远不会保存到底层数据源,事实上,如果我调试 DataSourceControl 的 ExecuteUpdate 方法,我会在 oldValues 集合中看到更新的值,并且值集合具有原始值。

从编辑表单中的控件调用的 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();
    }
}
4

1 回答 1

1

我发现以下解决方案可行。我不确定这是正确的方法,但它有效。

protected void gdOrders_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) {
    if (e.Parameters == "CloseOrder") {                
        gdOrders.RowUpdating += (s, e1) => { e1.NewValues["Status"] = 5; };
        gdOrders.UpdateEdit();
    }
}
于 2011-03-08T18:41:06.827 回答