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 に関する解説もなされています。一冊あると開発プロジェクトで重宝します。