国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET 2.0高級數據處理之處理控件事件

2024-07-10 13:09:11
字體:
來源:轉載
供稿:網友
  在前面的部分中,你已經看到了幾個數據控件事件的例子。數據控件的事件都是在頁面執行生命周期的適當時候提供給你,供你插入自定義代碼的。一般情況下,在某種特定的操作發生之前和之后,數據控件都會暴露事件。在某種操作之前調用的事件的名稱一般帶有-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的多個事件處理代碼,以及引發這些事件的相關次序。

<script runat="server">

protected sub gridview1_rowediting(byval sender as object, byval e as system.web.ui.webcontrols.gridviewediteventargs)
 ' 用戶在只讀模式中點擊"編輯"按鈕的時候引發
 response.write("row editing...")

 ' 如果gridview已經處于編輯模式,就終止編輯操作
 if not gridview1.editindex = -1 then
  e.cancel = true
 end if
end sub

protected sub gridview1_rowupdating(byval sender as object, byval e as system.web.ui.webcontrols.gridviewupdateeventargs)
' 當用戶在編輯模式中點擊"更新"按鈕的時候引發
 response.write("gridview: row updating...<br/>")
 
 '此處可以選擇終止事件,例如不允許用戶更新數據
 if user.isinrole("restricted") then
  e.cancel = true
 end if
end sub

protected sub gridview1_rowupdated(byval sender as object, byval e as system.web.ui.webcontrols.gridviewupdatedeventargs)
 ' 當更新操作完成所時候引發
 response.write("gridview: row updated<br/>")

 if not e.exception is nothing then
  ' 此處可以執行自定義的錯誤處理,完成之后設置exceptionhandled = true
  e.exceptionhandled = true
 end if
 ' 可以檢測更新操作所影響的行數
 response.write("<br />affected rows: " & server.htmlencode(e.affectedrows))
end sub

protected sub gridview1_rowcancelingedit(byval sender as object, byval e as system.web.ui.webcontrols.gridviewcancelediteventargs)
 ' 當用戶在編輯模式中點擊"取消"按鈕的時候引發
 response.write("edit canceled")
end sub

protected sub sqldatasource1_updated(byval sender as object, byval e as system.web.ui.webcontrols.sqldatasourcestatuseventargs)
 ' 當更新操作完成之后引發
 response.write("sqldatasource: update complete<br />")
end sub

protected sub sqldatasource1_updating(byval sender as object, byval e as system.web.ui.webcontrols.sqldatasourcecommandeventargs)
 ' 調用更新操作的時候引發
 response.write("sqldatasource: updating...")
end sub
</script>

  下面一個例子演示了一種更特殊的detailsview的inserting事件處理情形,它從detailsview 的fileupload控件中獲取照片文件,在detailsview完成插入操作(在數據庫為該照片文件插入一條記錄)之前,把該照片的內容保存到磁盤上。為了演示的目的,實際的文件保存代碼都被注釋了,你可以自己試驗一下。

protected sub detailsview1_iteminserting(byval sender as object, byval e as system.web.ui.webcontrols.detailsviewinserteventargs)
 dim f as fileupload = detailsview1.findcontrol("fileupload1")
 if f.hasfile then
  ' 保存文件
 end if
end sub

  與上面的例子類似,下面的例子演示了formview的itemdeleted事件,當照片的數據庫記錄被刪除的時候,它把相關的照片文件從磁盤上刪除。同樣,刪除文件的代碼也被注釋了。

protected sub formview1_itemdeleted(byval sender as object, byval e as system.web.ui.webcontrols.formviewdeletedeventargs)
 if (e.exception is nothing) then
  ' 刪除文件
  response.redirect(e.values("albumid"))
 end if
end sub


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广德县| 芜湖县| 烟台市| 古田县| 商都县| 页游| 利川市| 都昌县| 伊通| 灌云县| 潍坊市| 新余市| 屏山县| 北流市| 岳阳市| 凌云县| 镇宁| 韶关市| 喀喇沁旗| 千阳县| 凤台县| 明溪县| 垣曲县| 蕲春县| 道真| 哈尔滨市| 积石山| 宁武县| 龙江县| 颍上县| 梧州市| 上高县| 同江市| 绥化市| 陇南市| 陇川县| 搜索| 砚山县| 奇台县| 稷山县| 新昌县|