马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。asp.net|初级|控件|数据 在后面的部分中,你已看到了几个数据控件事务的例子。数据控件的事务都是在页面实行性命周期的得当时分供应给你,供你拔出自界说代码的。一样平常情形下,在某种特定的操纵产生之前和以后,数据控件城市表露事务。在某种操纵之前挪用的事务的称号一样平常带有-ing后缀,而在某种操纵以后挪用的事务的称号一样平常带有-ed后缀。比方,GridView所撑持的事务包含:
・PageIndexChanging和PageIndexChanged-在分页操纵之前和以后激发
・SelectedIndexChanging和SelectedIndexChanged-在选择操纵产生之前和以后激发
・Sorting和Sorted-在排序操纵之前和以后激发
・RowEditing和RowCancelingEdit-在数据行进进编纂形式之前或编纂形式被停止之前激发
・RowUpdating和RowUpdated-在更新操纵之前和以后激发
・RowDeleting和RowDeleted-在删除操纵之前和以后激发
・RowDataBound-当数据行举行数据绑定的时分激发
・RowCreated-当创建了数据行并显现的时分激发
・RowCommand-挪用外部控件的按钮命令的时分激发
数据源控件也表露了一些事务,与数据绑定控件的事务相似。SqlDataSource和ObjectDataSource控件都撑持上面一些事务:
・Selecting和Selected-在选择操纵之前和以后激发
・Updating和Updated-在更新操纵之前和以后激发
・Deleting和Deleted-在删除操纵之前和以后激发
・Inserting和Inserted-在拔出操纵之前和以后激发
・Filtering-在过滤器操纵产生之前激发
当ObjectDataSource控件的TypeName属性所指定的工具创建或烧毁的时分,它还供应了分外的事务。你能够经由过程设置随事务参数传送的ObjectInstance属性,在ObjectCreating事务中设置自界说的工具。
・ObjectCreating和ObjectCreated-在工具被创建之前和以后激发
・ObjectDisposing-在工具烧毁之前激发
某种操纵以后激发的事务用于编写自界说代码来呼应特定的操纵,或反省操纵的乐成/失利形态。比方,你能够反省Update、Insert或Delete操纵的RowsAffected,或反省Exception属性以断定在处置过程当中是不是产生了非常。你还能够设置事务参数的ExceptionHandled属性以避免非常显现在控件或页面上。上面的例子演示了GridView和SqlDataSource的多个事务处置代码,和激发这些事务的相干序次。
<scriptrunat="server">
ProtectedSubGridView1_RowEditing(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.GridViewEditEventArgs)
用户在只读形式中点击"编纂"按钮的时分激发
Response.Write("Rowediting...")
假如GridView已处于编纂形式,就停止编纂操纵
IfNotGridView1.EditIndex=-1Then
e.Cancel=True
EndIf
EndSub
ProtectedSubGridView1_RowUpdating(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.GridViewUpdateEventArgs)
当用户在编纂形式中点击"更新"按钮的时分激发
Response.Write("GridView:Rowupdating...<br/>")
此处能够选择停止事务,比方不同意用户更新数据
IfUser.IsInRole("Restricted")Then
e.Cancel=True
EndIf
EndSub
ProtectedSubGridView1_RowUpdated(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.GridViewUpdatedEventArgs)
当更新操纵完成所时分激发
Response.Write("GridView:Rowupdated<br/>")
IfNote.ExceptionIsNothingThen
此处能够实行自界说的毛病处置,完成以后设置ExceptionHandled=true
e.ExceptionHandled=True
EndIf
能够检测更新操纵所影响的行数
Response.Write("<br/>Affectedrows:"&Server.HtmlEncode(e.AffectedRows))
EndSub
ProtectedSubGridView1_RowCancelingEdit(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.GridViewCancelEditEventArgs)
当用户在编纂形式中点击"作废"按钮的时分激发
Response.Write("Editcanceled")
EndSub
ProtectedSubSqlDataSource1_Updated(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.SqlDataSourceStatusEventArgs)
当更新操纵完成以后激发
Response.Write("SqlDataSource:Updatecomplete<br/>")
EndSub
ProtectedSubSqlDataSource1_Updating(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.SqlDataSourceCommandEventArgs)
挪用更新操纵的时分激发
Response.Write("SqlDataSource:Updating...")
EndSub
</script>
上面一个例子演示了一种更特别的DetailsView的Inserting事务处置情况,它从DetailsView的FileUpload控件中猎取照片文件,在DetailsView完成拔出操纵(在数据库为该照片文件拔出一笔记录)之前,把该照片的内容保留到磁盘上。为了演示的目标,实践的文件保留代码都被正文了,你能够本人实验一下。
ProtectedSubDetailsView1_ItemInserting(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.DetailsViewInsertEventArgs)
DimfAsFileUpload=DetailsView1.FindControl("FileUpload1")
Iff.HasFileThen
保留文件
EndIf
EndSub
与下面的例子相似,上面的例子演示了FormView的ItemDeleted事务,当照片的数据库纪录被删除的时分,它把相干的照片文件从磁盘上删除。一样,删除文件的代码也被正文了。
ProtectedSubFormView1_ItemDeleted(ByValsenderAsObject,ByValeAsSystem.Web.UI.WebControls.FormViewDeletedEventArgs)
If(e.ExceptionIsNothing)Then
删除文件
Response.Redirect(e.Values("AlbumID"))
EndIf
EndSub它有很多缺点的,有兴趣可以到网上去搜索一下。于是微软有发明了“下一代”C++:C++/CLI语言,这个可以解决在.NETFramework中,托管C++产生的问题。在《程序员》杂志上,lippman和李建中合作连载介绍了C++/CLI语言。 |