ASP.NET

GridView にヘッダのみ表示(実行可能サンプルDLあり)

2012年6月24日

ASP.NET GridView はデフォルトでは空データとバインドしてもヘッダが表示されません。空データとバインドした際にヘッダを表示するには、ShowHeaderWhenEmpty プロパティを有効にします。

実装方法

ASPX 側は次のように実装します。ShowHeaderWhenEmpty="true" と指定することにより、空データでも GridView のヘッダが表示されるようになります。

<%-- ShowHeaderWhenEmpty="true" により、空データでもヘッダを表示する。 --%>
<asp:GridView
    ID="GridView1"
    runat="server"
    ShowHeaderWhenEmpty="true"
>
</asp:GridView>

コードビハインドには、データ行が空の DataTable オブジェクトを用意し、GridView にバインドします。

protected void Page_Load(object sender, EventArgs e)
{
    if(Session["data"] == null)
    {
        DataTable dt = new DataTable();
        // 列の定義
        dt.Columns.Add("Column1");
        dt.Columns.Add("Column2");
        dt.Columns.Add("Column3");
        // 行データは設定しない
        //dt.Rows.Add("", "", "");
        Session["data"] = dt;
    }

    // 列定義だけを持つ DataTable を参照
    this.GridView1.DataSource = Session["data"];
    this.GridView1.DataBind();
}

実行結果

GridView のヘッダーのみが表示されました!

サンプルアプリケーションのダウンロード

サンプルアプリケーションのダウンロードはこちらからどうぞ。

参考リソース

MSDN - GridView.ShowHeaderWhenEmpty プロパティ

おすすめの学習リソース

ASP.NET Web Forms を網羅的に学習する場合、独習ASP.NET Webフォーム 第6版 がおすすめです。懇切丁寧に様々な技術要素が解説されています。もちろん、GridView に関する解説もなされています。一冊あると開発プロジェクトで重宝します。

-ASP.NET