色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

在ASP.NET 2.0中數(shù)據(jù)綁定的實(shí)現(xiàn)方法

1、為什么ASP.NET 2.0中的數(shù)據(jù)綁定控件不需要寫代碼就能完成更新、刪除、新建等數(shù)據(jù)操作?

  ASP.NET 1.x時(shí),DataGrid等控件使用DataBinder.Eval(Container.DataItem,"ColumnName")這樣的表達(dá)式可以將數(shù)據(jù)源中的數(shù)據(jù)綁定到控件上,但并不能在更新數(shù)據(jù)時(shí)自動(dòng)將控件中的新值取出,更新回?cái)?shù)據(jù)庫。所以ASP.NET 2.0中的數(shù)據(jù)綁定分為兩種:單向數(shù)據(jù)綁定(即表達(dá)式或ReadOnly設(shè)為True的BoundField,只提供從數(shù)據(jù)源到控件的數(shù)據(jù)綁定)和雙向數(shù)據(jù)綁定(,不但可以將數(shù)據(jù)從數(shù)據(jù)源綁定到控件,而且可以在操作數(shù)據(jù)時(shí)將控件中的數(shù)據(jù)提供給數(shù)據(jù)源控件),所以ASP.NET 2.0操作數(shù)據(jù)時(shí)就不需要寫大量e.Item.FindControl()這樣的代碼了。

  2、在Update和Insert過程中,GridView/DetailsView/FormView是如何把值傳遞給數(shù)據(jù)源控件,以便數(shù)據(jù)源控件完成數(shù)據(jù)操作方法的調(diào)用的?

  更新時(shí),GridView會(huì)提供兩套值給數(shù)據(jù)源控件,一套新值,匯集所有ReadOnly不為True的列的值和模板中所有表達(dá)式的值,另一套舊的值,則從當(dāng)前行對應(yīng)的DataKey中獲得(DataKey的值在綁定數(shù)據(jù)時(shí)就會(huì)被GridView保存到視圖狀態(tài)中),可以在GridView的Updating事件處理程序中看到這一特征。舊的那套值提供給數(shù)據(jù)源控件后,它的Key會(huì)被數(shù)據(jù)源控件根據(jù)OldValuesParameterFormatString重命名。比如,GridView中的DataKeyNames設(shè)為ProductID,數(shù)據(jù)源控件的OldValuesParameterFormatString為original_{0},那么GridView在更新時(shí)傳給數(shù)據(jù)源控件的參數(shù)中就會(huì)有一個(gè)original_ProductID。

  新的那套值和老的那套值合起來要?jiǎng)偤煤蛿?shù)據(jù)源控件需要的參數(shù)列表相匹配,不能多也不能少,這是初學(xué)者使用GridView更新數(shù)據(jù)時(shí)遇到最多的問題。

  實(shí)際使用過程中如果主鍵列對應(yīng)的參數(shù)(比如,ProductID),沒有像Strong named Dataset那樣取名為original_ProductID,則需要更改數(shù)據(jù)源的OldValuesParameterFormatString,比如改成{0},這樣才能和實(shí)現(xiàn)方法的參數(shù)對應(yīng)起來。

  3、如何實(shí)現(xiàn)開放式并發(fā)?

  開放式并發(fā)的更新和刪除語句會(huì)有一個(gè)很長的where 子句,比如:   

update Table1 set Column1 = @Column1 , Column2 = @Column2 where ID = @original_ID and Column1 = @orignal_Column1 and Column2 = @original_Column2;

NET技術(shù)在ASP.NET 2.0中數(shù)據(jù)綁定的實(shí)現(xiàn)方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 昌图县| 泽普县| 凤庆县| 肥东县| 周宁县| 洛隆县| 广西| 修武县| 墨脱县| 琼结县| 全椒县| 石家庄市| 平南县| 南宫市| 旬邑县| 蒲江县| 南开区| 兴义市| 六安市| 黔西县| 广西| 哈巴河县| 临猗县| 十堰市| 会泽县| 天镇县| 九龙城区| 松江区| 花垣县| 宁安市| 达尔| 肃北| 峨眉山市| 诸城市| 宁国市| 蓬安县| 确山县| 雷山县| 莫力| 桦甸市| 安福县|