在 綜敘:在 DataList 裡編輯和刪除數據 中建立提供簡單編輯刪除功能的 DataList。功能雖完整但對用戶不友善:編輯刪除過程產生的例外皆未處理。例如遺漏產品名稱、價格輸入「Very affordable!」皆拋出例外,因程式碼未捕捉,頁面顯示 ASP.NET 執行時期詳細錯誤。
如 在 ASP.NET 頁面中處理 BLL/DAL 層的異常 所示,若 BLL 或 DAL 發生例外,詳細資訊會回傳至 ObjectDataSource 再至 GridView。我們已學習為 ObjectDataSource 或 GridView 建立 Updated 或 RowUpdated 事件處理器,檢查例外並標示已處理。
但使用 DataList 時,並非透過 ObjectDataSource 更新刪除,而是直接呼叫 BLL。為檢測 BLL/DAL 例外,需在 ASP.NET 頁面撰寫例外處理程式碼。本章將學習使用 DataList 編輯時如何優雅處理例外。
注意: 在 綜敘:在 DataList 裡編輯和刪除數據 中討論數種編輯刪除方法,部分涉及使用 ObjectDataSource。若採用該技術,可直接在 ObjectDataSource 的 Updated 或 Deleted 事件處理器中處理例外。
開啟 EditDeleteDataList 資料夾下的 ErrorHandling.aspx,加入 ID 為 Products 的 DataList 與名為 ProductsDataSource 的 ObjectDataSource。SELECT 標籤選擇 ProductsBLL 類別的 GetProducts() 方法。INSERT、UPDATE、DELETE 標籤選擇 None。

圖 1:設定 ObjectDataSource