到目前為止您在本章中己經看到了觸發單個事件的控件 Button和ImageButton控件都能觸發Click事件 而其他控件則會觸發其他事件 您可能已經註意到每個控件都有多個可以觸發的事件 但可能沒有意識到單個操作可能會觸發多個事件 例如 在更新數據的時候會觸發Updating和Updated兩個事件 與此類似 在添加新數據時會觸發Insertin盯nserted事件對 而在刪除數據時會觸發Deleting/Deleted事件對 現在時事件(例如Inserting)在操作執行時觸發 而過去時事件(例如Deleted)在事件執行之後觸發 例如 在刪除壹行數據的時候 Deleting事件在數據刪除之前觸發 而Deleted事件在數據刪除後再觸發
對於有些事件 由於它們在實際操作執行之前觸發 這就使得您有機會取消事件 例如 考慮EditSquad aspx文件 球隊老板可以在這裏修改球隊成員 壹件老板需要確保的事情是任何在賽季中離開的球員都必須保存在數據庫中 所以在 月 號到次年 月 號之間不能刪除球員的數據 為了實現這個功能 需要允許刪除球員 但時間不能在賽季內 下面的 試壹試 練習實現這個功能
( )在Visual Web Developer中打開EditSquad aspx文件 並在頁面的最後添加壹個Label控件
( )將該Label控件的ID設置為Message 並清除它的Text屬性
( )打開該頁面的代碼文件並為DetailsDataSource控件的Deleting事件創建壹個空白的事件過程 可以使用代碼文件編輯器頂部的下拉菜單進行創建 就像在處理間接事件的 試壹試 練習中所做的那樣
( )在空白的事件過程中 添加如下代碼
?
Dim today As DateTime = DateTime Now()
Dim startYear As Integer
Dim endYear As Integer
Dim seasonStart As DateTime
Dim seasonEnd As DateTime
?
If today Month > Then
startYear = today Year
endYear = today Year +
Else
startYear = today Year
endYear = today Year
End If
?
seasonStart = New DateTime(startYear ) th August
seasonEnd = New DateTime(endYear ) st May
?
If today >= seasonStart And today <= seasonEnd Then
e Cancel = True
Message Text = Cannot delete players during the season
Else
GridView DataBind()
Message Text =
End If( )保存該文件並從右鍵菜單中選擇View in Browsera
( )確保 系統的日期處於 月 號與次年 月 號之間
( )選擇壹個球員並試著刪除他 將看到壹條消息顯示在賽季期間不能刪除球員 同時球員也沒有被刪除
( )將系統時間修改到賽季後 也就是在 月 號到 月 號之間
( )選擇壹個球員並試著刪除他 為了不刪除真實的球員數據 可以先插入壹個球員再刪除他
ASP NET 入門教程完整版 ?
lishixinzhi/Article/program/net/201311/14658