GridView 是 WebForms 核心數據展示控件,靈活掌握其綁定模式、列類型、事件流與客戶端交互,能大幅提升開發效率與用戶體驗。本文匯總 9 大實戰技巧。
BoundField.ReadOnly = true → 編輯模式下**不轉為 TextBox**,保持 Label 顯示,適合主鍵/時間戳等不可改列。
DataField:數據表列名 (存儲過程返回別名如 @A 則填 A)DataFormatString + HtmlEncode="false":格式化輸出 (如 {0:yyyy-MM-dd}、{0:C})HeaderText:顯示標題 (建議中文)NullDisplayText:NULL 值顯示默認文本ItemStyle/HeaderStyle/FooterStyle 設置對齊、背景色等DataKeyNames 設置主鍵字段 (單/多鍵),GridView.DataKeys[rowIndex].Value 取值AutoGenerateColumns="false" + 手動聲明 BoundField/TemplateField 完全控制列呈現| 事件 | 階段 | 典型用途 | 取消操作 |
|---|---|---|---|
RowCommand | 任意按鈕點擊 | 統一入口,按 CommandName 分派 | 無 |
RowDeleting | 刪除**前** | 權限校驗、業務規則、調用服務層刪除 | e.Cancel = true 阻止數據源執行 |
RowDeleted | 刪除**後** | 日誌、緩存失效、UI 提示 | 無 |
RowUpdating | 更新**前** | 驗證、調用服務層更新 | e.Cancel = true |
RowUpdated | 更新**後** | 同步緩存、重新綁定 | 無 |
RowEditing | 進入編輯模式 | 設置 EditIndex、綁定下拉框數據源 | e.Cancel = true |
Sorting/Sorted | 排序前/後 | 多列排序、自定義排序邏輯 | e.Cancel = true |
SelectedIndexChanging/Changed | 選中行變更前/後 | 詳情面板聯動 | e.Cancel = true |