C# では、データ ソースが空の場合でも、グリッドビューのヘッダーを表示するにはどうすればよいでしょうか。
列はすべて事前に定義されているため、自動生成は行われません。
現在私がやっていることは以下の通りです。
ストアド プロシージャから DataTable を取得し、グリッドビューの DataSource を設定して、DataBind() を呼び出します。
これはデータがある場合は正常に機能しますが、行が返されない場合は、グリッドが表示されるはずの場所に空白の場所が表示されます。
編集: .NET 4+ プロパティについて、皆さんに感謝します。.NET 3.5 の時代にもこの質問をしましたが、今ではずっと簡単になりました。:)
ベストアンサー1
ASP.Net 4.0 ではブール型ShowHeaderWhenEmpty
プロパティが追加されました。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.showheaderwhenempty.aspx
<asp:GridView runat="server" ID="GridView1" ShowHeaderWhenEmpty="true" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="First Name" DataField="FirstName" />
<asp:BoundField HeaderText="Last Name" DataField="LastName" />
</Columns>
</asp:GridView>
注意: DataBind() が null 以外の値で呼び出されない限り、ヘッダーは表示されません。
GridView1.DataSource = New List(Of String)
GridView1.DataBind()