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