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

解決 DataGrid 綁定空 List 時表頭不顯示的問題

     編輯:ASP.NET 基礎

問題情境

當 DataGrid (或 GridView) 綁定 List<T>,若集合為 null 或空集合,預設行為只會顯示空白區域,連欄位表頭都不會出現。

優雅解法:確保永遠回傳非 null 的空集合

// 原始寫法:可能回傳 null
var list = Pt_OrderWorkFlow_DAO.GetOrderWorkFlow(wfid, uid, 1);
if (list == null) list = new List<Pt_OrderWorkFlow>();
dgWaitList.DataSource = list;
dgWaitList.DataBind();

// 改良:DAO 直接保證回傳空 List
public List<Pt_OrderWorkFlow> GetOrderWorkFlow(...) {
    using (var db = DatabaseHelper.GetDB()) {
        var result = (from a in db.Pt_OrderWorkFlow
                      where a.WFID == wfID && a.ContractNumber == cNumber
                      select a).ToList();
        return result.Count > 0 ? result : new List<Pt_OrderWorkFlow>();
    }
}

補充:GridView 顯示空資料時仍顯示表頭

若使用 GridView,可設定 ShowHeaderWhenEmpty="true" (ASP.NET 4.5+):

<asp:GridView ID="gvData" runat="server" ShowHeaderWhenEmpty="true" />

或在 RowDataBound 事件中手動建立 HeaderRow。

核心原則

  • **資料存取層永遠回傳集合,不回傳 null** — 避免呼叫端須額外檢查。
  • **UI 綁定前確保 DataSource 不為 null** — 即使是空集合,DataGrid 仍會渲染表頭結構。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved