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

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

1、為什么ASP.NET 2.0中的數(shù)據(jù)綁定控件不需要寫(xiě)代碼就能完成更新、刪除、新建等數(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ù)庫(kù)。所以ASP.NET 2.0中的數(shù)據(jù)綁定分為兩種:?jiǎn)蜗驍?shù)據(jù)綁定(即表達(dá)式或ReadOnly設(shè)為T(mén)rue的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í)就不需要寫(xiě)大量e.Item.FindControl()這樣的代碼了。

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

  更新時(shí),GridView會(huì)提供兩套值給數(shù)據(jù)源控件,一套新值,匯集所有ReadOnly不為T(mén)rue的列的值和模板中所有表達(dá)式的值,另一套舊的值,則從當(dāng)前行對(duì)應(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。

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

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

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

  開(kāi)放式并發(fā)的更新和刪除語(yǔ)句會(huì)有一個(gè)很長(zhǎng)的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)載需保留來(lái)源!

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

主站蜘蛛池模板: 怀宁县| 铅山县| 宽城| 洪雅县| 黄骅市| 五华县| 平乐县| 枣庄市| 吉水县| 乌兰浩特市| 富民县| 大竹县| 白朗县| 莒南县| 山东| 九江县| 双城市| 新干县| 彰化市| 高尔夫| 静安区| 普兰县| 宁武县| 阿拉善右旗| 绍兴县| 德惠市| 章丘市| 乐清市| 抚州市| 肇东市| 高碑店市| 蛟河市| 岳普湖县| 民权县| 柯坪县| 寿宁县| 乌拉特后旗| 五家渠市| 环江| 中卫市| 嵊泗县|