自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談ASP.NET 2.0數(shù)據(jù)綁定

開(kāi)發(fā) 后端
本文介紹為什么ASP.NET 2.0數(shù)據(jù)綁定控件不需要寫(xiě)代碼就能完成更新、刪除、新建等數(shù)據(jù)操作?

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 子句,比如:

 

強(qiáng)類(lèi)型數(shù)據(jù)集通過(guò)在高級(jí)選項(xiàng)上選中開(kāi)放式并發(fā)的選鉤可以自動(dòng)生成這樣的命令。根據(jù)我們第2點(diǎn)的論述,只需在GirdView的DatakeyNames屬性中把所有的字段都加進(jìn)去,這樣就會(huì)自動(dòng)的把舊的值放進(jìn)老值集合中,滿足數(shù)據(jù)源的要求。由此,我們可以理解為什么DataGrid的 DataKeyField(單數(shù))屬性會(huì)被替換為DataKeyNames屬性(復(fù)數(shù))。以上介紹ASP.NET 2.0數(shù)據(jù)綁定

【編輯推薦】

  1. 淺談ASP.NET MVC框架
  2. 介紹ASP.NET MVC中的MvcAjaxPanel
  3. ASP.NET MVC框架拯救UpdatePanel
  4. 用ASP.NET MVC源代碼尋找解決方案
  5. ASP.NET MVC框架的ActionInvoker
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-07-28 14:06:28

ASP.NET 2.0

2009-07-27 09:01:44

ObjectDataS

2009-08-05 17:26:25

ASP.NET 2.0

2009-08-05 17:43:48

ASP.NET 2.0

2009-07-20 17:12:17

ASP.NET訪問(wèn)數(shù)據(jù)

2009-08-05 17:58:53

自定義集合ASP.NET 2.0

2009-08-19 10:54:42

ASP.NET數(shù)據(jù)訪問(wèn)

2009-07-24 10:52:42

ASP.NET ISA

2009-07-22 16:11:43

ASP.NET AJA

2009-07-20 15:30:11

ASP.NET應(yīng)用

2009-08-07 15:34:15

ASP.NET數(shù)據(jù)綁定

2009-07-27 16:53:15

ASP.NET 2.0

2009-07-24 17:15:52

SiteMapData

2009-08-03 18:47:12

ASP.NET數(shù)據(jù)緩存

2009-08-05 15:29:33

ASP.NET For

2009-07-23 15:44:39

ASP.NET MVC

2009-07-28 17:49:30

ASP.NET定期回收

2009-07-22 13:24:24

ASP.NET MVC

2009-07-28 16:03:23

ASP.NET狀態(tài)服務(wù)

2009-08-10 10:19:47

ASP.NET組件設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)