2011-03-08 43 views
0

我有一個ASPxGridView顯示給用戶,並帶有編輯命令按鈕。當用戶單擊編輯命令按鈕時,所選行將變爲編輯表單。在編輯模式下更改ASPxGridView.OnCustomCallback中的值將不會保存新值

在編輯窗體中我有一個控件,點擊後會通過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(); 
    } 
} 

回答

1

我發現下面的解決方案正常工作。我不確定這是正確的方式,但它的工作原理。

protected void gdOrders_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e) { 
    if (e.Parameters == "CloseOrder") {     
     gdOrders.RowUpdating += (s, e1) => { e1.NewValues["Status"] = 5; }; 
     gdOrders.UpdateEdit(); 
    } 
} 
相關問題