原創|其它|編輯:郝浩|2012-10-08 10:26:42.000|閱讀 931 次
概述:在項目中,我通過ASPxGridView來鏈接到LinqServerModeDataSource。麻煩的是,ASPxGridView不允許我們編輯數據,但是我必須支持編輯數據.本文主要介紹如何解決DevExpress ASPxGridView不支持編輯數據的問題。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在項目中,我通過ASPxGridView來鏈接到LinqServerModeDataSource。麻煩的是,ASPxGridView不允許我們編輯數據,但是我必須支持編輯數據,這個如何解決?
LinqServerModeDataSource與一個支持數據修改操作的數據源控件配合使用,可輕松地解決ASPxGridView的編輯數據問題。
首先, 我們得了解一下ASPxGridView是如何工作的. 當點擊更新(刪除)按鈕時,表格視圖將會調用它相關的數據源的更新(刪除,插入)命令。當ASPxGridView連接到LinqServerModeDataSource時,你點擊更新(刪除)等這些按鈕,將會觸發”Specified Method is Not Supported“異常, 并且ASPxGridView 還會在EditForm的錯誤行上提示"Specified Method is Not Supported" 。這是因為 LINQ 定義了查詢語言,但是它并沒有定義如何進行數據修改,所以才會發生這個問題。
你應該做的是:
1) 處理ASPxGridView的 行更新, 行插入, 行刪除事件;
2) 防止ASPxGridView 自己去處理修改操作;
3) 委托數據修改操作到額外的數據源上.
下面的代碼顯示了怎樣實現數據的修改:
[C#]
protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) {
LinqDataSource1.Update(e.Keys, e.NewValues, e.OldValues);
e.Cancel = true;
ASPxGridView1.CancelEdit();
}
protected void ASPxGridView1_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) {
LinqDataSource1.Insert(e.NewValues);
e.Cancel = true;
ASPxGridView1.CancelEdit();
}
protected void ASPxGridView1_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) {
LinqDataSource1.Delete(e.Keys, e.Values);
e.Cancel = true;
ASPxGridView1.CancelEdit();
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:DevExpress中文網