到目前为止您在本章中己经看到了触发单个事件的控件Button和ImageButton控件都能触发Click事件而其他控件则会触发其他事件您可能已经注意到每个控件都有多个可以触发的事件但可能没有意识到单个操作可能会触发多个事件例如在更新数据的时候会触发Updating和Updated两个事件与此类似在添加新数据时会触发Insertin盯nserted事件对而在删除数据时会触发Deleting/Deleted事件对现在时事件(例如Inserting)在操作执行时触发而过去时事件(例如Deleted)在事件执行之后触发例如在删除一行数据的时候Deleting事件在数据删除之前触发而Deleted事件在数据删除后再触发
对于有些事件由于它们在实际操作执行之前触发这就使得您有机会取消事件例如考虑EditSquadaspx文件球队老板可以在这里修改球队成员一件老板需要确保的事情是任何在赛季中离开的球员都必须保存在数据库中所以在月号到次年月号之间不能删除球员的数据为了实现这个功能需要允许删除球员但时间不能在赛季内下面的试一试练习实现这个功能
()在Visual Web Developer中打开EditSquadaspx文件并在页面的最后添加一个Label控件
()将该Label控件的ID设置为Message并清除它的Text属性
()打开该页面的代码文件并为DetailsDataSource控件的Deleting事件创建一个空白的事件过程可以使用代码文件编辑器顶部的下拉菜单进行创建就像在处理间接事件的试一试练习中所做的那样
()在空白的事件过程中添加如下代码
Dim today As DateTime = DateTimeNow()
Dim startYear As Integer
Dim endYear As Integer
Dim seasonStart As DateTime
Dim seasonEnd As DateTime
If todayMonth > Then
startYear = todayYear
endYear = todayYear +
Else
startYear = todayYear
endYear = todayYear
End If
seasonStart = New DateTime(startYear ) th August
seasonEnd = New DateTime(endYear ) st May
If today >= seasonStart And today <= seasonEnd Then
eCancel = True
MessageText = Cannot delete players during the season
Else
GridViewDataBind()
MessageText =
End If
()保存该文件并从右键菜单中选择View in Browsera
()确保系统的日期处于月号与次年月号之间
()选择一个球员并试着删除他将看到一条消息显示在赛季期间不能删除球员同时球员也没有被删除
()将系统时间修改到赛季后也就是在月号到月号之间
()选择一个球员并试着删除他为了不删除真实的球员数据可以先插入一个球员再删除他
ASPNET 入门教程完整版
[] [] []