首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

ASP.NET GridView 進階技巧匯總:數據綁定、模板列、事件處理與客戶端腳本

     編輯:關於C語言

GridView 是 WebForms 核心數據展示控件,靈活掌握其綁定模式、列類型、事件流與客戶端交互,能大幅提升開發效率與用戶體驗。本文匯總 9 大實戰技巧。

1. 數據源控件與編輯/刪除按鈕

  • 要自動生成編輯/刪除按鈕,**數據源控件 (SqlDataSource/ObjectDataSource) 必須配置 UpdateCommand/DeleteCommand**
  • **最佳實踐:** 綁定無意義佔位 SQL/存儲過程啟用按鈕,**實際 CRUD 邏輯在代碼後置 (RowUpdating/RowDeleting) 中調用三層業務邏輯**,而非依賴設計時配置。便於擴展、測試、遷移 WinForm/WPF。

2. 列只讀控制

BoundField.ReadOnly = true → 編輯模式下**不轉為 TextBox**,保持 Label 顯示,適合主鍵/時間戳等不可改列。

3. BoundField 綁定與格式化

  • DataField:數據表列名 (存儲過程返回別名如 @A 則填 A)
  • DataFormatString + HtmlEncode="false":格式化輸出 (如 {0:yyyy-MM-dd}、{0:C})
  • HeaderText:顯示標題 (建議中文)
  • NullDisplayText:NULL 值顯示默認文本
  • 樣式通過 ItemStyle/HeaderStyle/FooterStyle 設置對齊、背景色等

4. 主鍵與自動生成列

  • DataKeyNames 設置主鍵字段 (單/多鍵),GridView.DataKeys[rowIndex].Value 取值
  • AutoGenerateColumns="false" + 手動聲明 BoundField/TemplateField 完全控制列呈現

5. 核心事件流與取消機制

規律: 所有 ing 事件可通過 e.Cancel = true 截斷後續數據源操作。

6. 客戶端確認腳本

刪除按鈕 OnClientClick="return confirm('確定刪除?');" 或綁定 Attributes["onclick"]。返回 false 取消回發,服務端事件不觸發。

7. CommandName 區分同類按鈕

ButtonField CommandName="CustomEdit" / "Preview" / "Export" → RowCommand 中 switch(e.CommandName) 分派。

8. DataSource vs DataSourceID

  • DataSource:綁定集合 (DataTable/List/Array),**需手動 DataBind()**
  • DataSourceID:綁定數據源控件 (SqlDataSource 等),**自動管理生命週期**

9. 對象集合自動生成中文列名

綁定 List<T> 時,若實體屬性為中文名 (public string 姓名 {get;set;}),GridView 自動以屬性名為列標題,**無需手動設置 HeaderText**,快速產出中文報表。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
事件階段典型用途取消操作
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