仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 498|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之Mastering ASP.Net DataBinding

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:40:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;asp.net|asp.netbegin:

MasteringASP.NetDataBinding
KarlSeguin?karlseguin@hotmail.com


TableofContents
Introduction
TheSampleProgram
UnderstandingDataItem
Formatting
Inline
OnItemDataBound
OnItemCreated
NestedBinding
Inline
OnItemDataBound
HandlingEvents
Download

ThisarticleisavailableatCodeProject.Checkitouttomakecomments,discussorratethearticle

IdliketothankJean-ClaudeManolifordevelopinghisC#Codeformat,whichiusedinwritingthistutorial.
Introduction
Questionsregardingdatabinding,inoneformoranother,areprobablythemostaskedintheaspnetnewsgroups.Itscleareveryonelovestheideaofdatabindingbutthatmoreadvancedfunctionality,suchaseventhandling,conditionalformattingandfine-tuning,arentstraightforward.Thegoalofthistutorialisshedlightonsomeofthemorecommonandfrequentlyaskedquestionsaboutthecapabilitiesofdatabinding.
TheSampleProgram
Throughoutthistutorialwellusetwoseparatedatasources.Thefirstwillbeyourevery-daydataset,theotherwillbeastrongly-typedcustomcollectioncontainingstrongly-typedobjects.

Ourdatasetwillcontaintwotables,CustomersandOrders:
CustomerStructureOrderStructure
NameTypeDescriptionNameTypeDescription
CustomerId1Int32UniquecustomeridentifierOrderIdInt32Uniqueorderidentifier
NameStringNameofthecustomerCustomerId1Int32Identifierofthecustomwhoplacedtheorder
ZipStringCustomersprimaryZIPorPortalcodeOrderedDateTimeDatetheorderwasplacedon
EnabledBooleanWhetherthecustomeriscurrentlyactive/enabledAmountDecimalDollarvalueoftheorder

1ADataRelationexistsbetweentheCustomer.CustomerIdandOrder.CustomerIdcolumns.

OurbusinessentitieswillconsistofanOwnerandaPetclass:
OwnerStructurePetsStructure
NameTypeDescriptionNameTypeDescription
OwnerIdInt32UniqueowneridentifierPetIdInt32Uniquepetidentifier
YearOfBirthInt32TheyeartheownerwasborninNameStringNameofthepet
FirstNameStringOwnersfirstnameIsNeuturedBooleanWhetherornotthepetisneutured
LastNameStringOwnerslastnameTypePetTypeIndicatesthetypeofpet(Dog,Cat,Fish,Bird,Rodent,Other)
PetsPetCollectionCollectionofpetstheownerhas

UnderstandingDataItem
YouveundoudbtedlymadefrequentuseoftheDataItemproperty,namelywhenusingtheDataBindingsyntaxtooutputavalue:
1:<%#DataBinder.Eval(Container.DataItem,"customerId")%>
ItsimportanttounderstandthatDataItemisactuallyanobject,andthatwhenyouusetheDataBinder.Evalfunction,itbasicallyneedstofigureoutwhattypeofobjectitisandhowtoget"customerId"fromit.ThatsbecauseyourDataSourcecanbedifferentthings,suchasadatasetordataview,anarraylistorhashtable,acustomcollectionandmore.Bindinghappensonarow-by-rowbasisandDataItemactuallyrepresentsthecurrentrowbeingbound.ForaDataSet,DataTableorDataViewDataItemisactuallyaninstanceofDataRowView(youmightthinkthattheDataItemforaDataSetorDataTablewouldbeaninstanceofDataRow,butwhenyoubindeitherofthese,theDefaultViewisactuallyused,thereforeDataItemwillalwaysbeaDataRowView).Whenyouarebindingtoacollection,DataItemisaninstanceoftheitemwithinthecollection.Wecanobservethismoreclearlywiththefollowingcode:
1:<%@Importnamespace="System.Data"%>
2:<%@Importnamespace="BindingSample"%>
3:<asp:Repeaterid="dataSetRepeater"Runat="server">
4:<ItemTemplate>
5:<%#((DataRowView)Container.DataItem)["customerId"]%>-
6:<%#((DataRowView)Container.DataItem)["Name"]%><br/>
7:</ItemTemplate>
8:<AlternatingItemTemplate>
9:<%#DataBinder.Eval(Container.DataItem,"customerId")%>-
10:<%#DataBinder.Eval(Container.DataItem,"Name")%><br/>
11:</AlternatingItemTemplate>
12:</asp:Repeater>
13:
14:<br><br>
15:
16:<asp:Repeaterid="collectionRepeater"Runat="server">
17:<ItemTemplate>
18:<%#((Owner)Container.DataItem).OwnerId%>-
19:<%#((Owner)Container.DataItem).FirstName%><</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-20 10:58:47 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-23 13:52:19 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
爱飞 该用户已被删除
地板
发表于 2015-1-24 16:32:00 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
海妖 该用户已被删除
5#
发表于 2015-2-7 18:04:13 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
兰色精灵 该用户已被删除
6#
发表于 2015-2-22 20:12:25 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
变相怪杰 该用户已被删除
7#
发表于 2015-3-7 02:02:34 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-14 04:02:32 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
老尸 该用户已被删除
9#
发表于 2015-3-21 00:20:32 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 22:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表