譯注: Scott Mitchell 46 篇 ASP.NET 2.0 教程系列第 19 篇譯文,原文尚未發布。Word 文件可在這裡下載中英混排版本,這裡下載中文版本。
EditItemTemplate)增加驗證控制項InsertItemTemplate 模板增加驗證控制項前三節範例(譯注:本文完稿時前三節 16-18 仍在緊張翻譯中,且目前教程系列 46 篇僅 15 篇發布,其他原文未發布無法從網路獲取)中,GridView 與 DetailsView 使用繫結欄與 CheckBoxField(繫結時透過智慧標籤讓 VS 依資料庫自動增加對應類型)。編輯 GridView 或 DetailsView 列時,非唯讀屬性繫結欄自動轉為 textbox 供用戶修改。同理 DetailsView 新增記錄時,InsertVisible 為 true(預設)的繫結欄呈現空 textbox 接受輸入。CheckBoxField 同理,通常唯讀核取方塊顯示,新增/編輯時可選擇。
雖 BoundField 與 CheckBoxField 提供編輯新增介面實用,但缺乏驗證功能。用戶產生錄入錯誤(如遺漏 ProductName 或 UnitsInStock 輸入 -50)應用程式將從底層拋出例外。雖可如上節教程 previous tutorial 討論處理例外,但完美「新增/編輯」介面應含驗證控制項,第一時間阻擋無效輸入。
提供自訂新增/編輯介面需將 BoundField、CheckBoxField 換成模板欄(ITemplateField)。關於模板欄已在 Using TemplateFields in the GridView Control 與 Using TemplateFields in the DetailsView Control 討論,由處理不同列狀態模板組成。模板欄項目模板(ItemTemplate)呈現 DetailsView 或 GridView 唯讀欄位或列,EditItemTemplate 與 InsertItemTemplate 分別為編輯與新增模式介面模板。
本節教程將發現為模板欄 EditItemTemplate 與 InsertItemTemplate 提供驗證控制項以提供更健全介面是多麼簡單。明確說,本教程採用 Examining the Events Associated with Inserting, Updating, and Deleting 建立的範例程式碼,增加新增/編輯時相關驗證。
在該教程中建立頁面,可編輯 GridView 列表顯示產品名稱與價格。頁面含 DetailsView,DefaultMode 設為 Insert 永呈新增模式。透過 DetailsView 用戶錄入名稱價格新增產品,點擊 Insert 後新產品加入系統(見圖 1)。

圖 1:以前的程式碼允許用戶增加新的產品或修改已有的產品