原創(chuàng)|其它|編輯:郝浩|2012-10-08 10:26:42.000|閱讀 936 次
概述:在項目中,我通過ASPxGridView來鏈接到LinqServerModeDataSource。麻煩的是,ASPxGridView不允許我們編輯數(shù)據(jù),但是我必須支持編輯數(shù)據(jù).本文主要介紹如何解決DevExpress ASPxGridView不支持編輯數(shù)據(jù)的問題。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在項目中,我通過ASPxGridView來鏈接到LinqServerModeDataSource。麻煩的是,ASPxGridView不允許我們編輯數(shù)據(jù),但是我必須支持編輯數(shù)據(jù),這個如何解決?
LinqServerModeDataSource與一個支持?jǐn)?shù)據(jù)修改操作的數(shù)據(jù)源控件配合使用,可輕松地解決ASPxGridView的編輯數(shù)據(jù)問題。
首先, 我們得了解一下ASPxGridView是如何工作的. 當(dāng)點擊更新(刪除)按鈕時,表格視圖將會調(diào)用它相關(guān)的數(shù)據(jù)源的更新(刪除,插入)命令。當(dāng)ASPxGridView連接到LinqServerModeDataSource時,你點擊更新(刪除)等這些按鈕,將會觸發(fā)”Specified Method is Not Supported“異常, 并且ASPxGridView 還會在EditForm的錯誤行上提示"Specified Method is Not Supported" 。這是因為 LINQ 定義了查詢語言,但是它并沒有定義如何進行數(shù)據(jù)修改,所以才會發(fā)生這個問題。
你應(yīng)該做的是:
1) 處理ASPxGridView的 行更新, 行插入, 行刪除事件;
2) 防止ASPxGridView 自己去處理修改操作;
3) 委托數(shù)據(jù)修改操作到額外的數(shù)據(jù)源上.
下面的代碼顯示了怎樣實現(xiàn)數(shù)據(jù)的修改:
[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();
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:DevExpress中文網(wǎng)