首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

ASP.NET 動態創建 GridView 綁定 List 數據不顯示:缺少添加到控件樹

     編輯:程式設計綜合問答

問題代碼

protected void Button8_Click(object sender, EventArgs e) {
    GridView gv = new GridView();
    gv.DataSource = mf.select(s);
    gv.DataBind();
    // 結束:gv 未加入頁面控件樹,不會渲染輸出
}

解決方案

方法一:頁面預置 GridView 控件(推薦)

<!-- .aspx -->
<asp:GridView ID="gvData" runat="server" AutoGenerateColumns="true" />
// .aspx.cs
protected void Button8_Click(object sender, EventArgs e) {
    gvData.DataSource = mf.select(s);
    gvData.DataBind();
}

方法二:動態創建並添加到容器

protected void Button8_Click(object sender, EventArgs e) {
    GridView gv = new GridView();
    gv.DataSource = mf.select(s);
    gv.DataBind();
    // 必須添加到某個已存在的容器控件中
    this.form1.Controls.Add(gv); // 或 Panel1.Controls.Add(gv)
}

關鍵點

  • 動態創建的控件**必須**加入 `Page.Controls` 或某個命名容器的 `Controls` 集合,才會參與生命周期並渲染輸出。
  • 預置控件優勢:聲明式定義列樣式、分頁、排序,易於維護;動態創建適合完全不可預知列結構的場景。
  • 綁定 `List` 時,`AutoGenerateColumns="true"` 會自動根據屬性生成列;若需自定義列,定義 `BoundField`/`TemplateField`。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved