All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP实例:将IP最后一位替换为星号_[PHP教程]
PHP技巧:关于cookie和session的分析_[PHP教程]
Visual,Studio,2008,简体中文版,测试版2,下载地址_[Asp.Net教程]
ASP.NET技巧:获取本机上配置好的Oracle服务名_.net资料_编程技术
WEB标准时页面自适应的解决方案_[Html教程]
asp.net得到HTML,meta标记的内容_[Asp.Net教程]
故障解决:PHPMyAdmin连接MYSQL的问题_php资料_编程技术
ASP.NET之上传文件管理策略_.net资料_编程技术
Asp.net2.0:如何使用ObjectDataSource(配合ORM)_[Asp.Net教程]
asp.net,控件开发(一)---显示控件内容_[Asp.Net教程]
Reading number is top 10 pictures
看到这名字我也是醉了。。。。。。
Li Zongrui hunting video screenshots2
29 the belle stars after bath figure3
Sora aoi in China2
Sora aoi in China4
妹子最好别玩单反
Fender Bender that so horrifying1
NeedWallpaper11
2012 national geographic daily picture7
战场废物1
Download software ranking
Ashlynn Video4
Tram sex maniac 2 (H) rar bag12
Unix video tutorial3
美女游泳记
网络管理员第三版
DreamWeaver8
功夫熊猫2(下集)
The Bermuda triangle3
Unix video tutorial6
Unix video tutorial20
aaa published in(发表于) 2013/12/18 8:10:03 Edit(编辑)
在ASP.NET,2.0中数据绑定的实现方法_.net资料_编程技术

在ASP.NET,2.0中数据绑定的实现方法_.net资料_编程技术

在ASP.NET 2.0中数据绑定的实现方法_.net资料_编程技术-你的首页-uuhomepage.com

  1、为什么ASP.NET 2.0中的数据绑定控件不需要写代码就能完成更新、删除、新建等数据操作?


  在ASP.NET 1.x时,DataGrid等控件使用DataBinder.Eval(Container.DataItem,"ColumnName")这样的表达式可以将数据源中的数据绑定到控件上,但并不能在更新数据时自动将控件中的新值取出,更新回数据库。所以ASP.NET 2.0中的数据绑定分为两种:单向数据绑定(即表达式或ReadOnly设为True的BoundField,只提供从数据源到控件的数据绑定)和双向数据绑定(,不但可以将数据从数据源绑定到控件,而且可以在操作数据时将控件中的数据提供给数据源控件),所以ASP.NET 2.0操作数据时就不需要写大量e.Item.FindControl()这样的代码了。


  2、在Update和Insert过程中,GridView/DetailsView/FormView是如何把值传递给数据源控件,以便数据源控件完成数据操作方法的调用的?


  更新时,GridView会提供两套值给数据源控件,一套新值,汇集所有ReadOnly不为True的列的值和模板中所有表达式的值,另一套旧的值,则从当前行对应的DataKey中获得(DataKey的值在绑定数据时就会被GridView保存到视图状态中),可以在GridView的Updating事件处理程序中看到这一特征。旧的那套值提供给数据源控件后,它的Key会被数据源控件根据OldValuesParameterFormatString重命名。比如,GridView中的DataKeyNames设为ProductID,数据源控件的OldValuesParameterFormatString为original_{0},那么GridView在更新时传给数据源控件的参数中就会有一个original_ProductID。


  新的那套值和老的那套值合起来要刚好和数据源控件需要的参数列表相匹配,不能多也不能少,这是初学者使用GridView更新数据时遇到最多的问题。


  实际使用过程中如果主键列对应的参数(比如,ProductID),没有像Strong named Dataset那样取名为original_ProductID,则需要更改数据源的OldValuesParameterFormatString,比如改成{0},这样才能和实现方法的参数对应起来。


  3、如何实现开放式并发?


  开放式并发的更新和删除语句会有一个很长的where 子句,比如:


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


  强类型数据集通过在高级选项上选中开放式并发的选钩可以自动生成这样的命令。根据我们第2点的论述,只需在GirdView的DatakeyNames属性中把所有的字段都加进去,这样就会自动的把旧的值放进老值集合中,满足数据源的要求。由此,我们可以理解为什么DataGrid的DataKeyField(单数)属性会被替换为DataKeyNames属性(复数)。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.