2011年8月4日木曜日

ASP.NET GridViewの列を非表示にする

GridViewの列は、VisibleをFalseにすると値が取れなくなる。これに対処する方法はいくつかあるが、DataSourceIdを設定したデータソースバインディングを使用している場合だとうまくいかなかったりなど、何れの方法も難があったりする。

例:http://www.dev102.com/2008/03/05/how-to-hide-columns-of-a-gridview/
※これは、ObjectDataSourceを使用した場合うまくいかなかった

最終手段というわけではないが、結局下記のように消すのが一番良いという結論に達した。
・スタイル定義
<style>
.item-invisible
{
display:none

}
</style>

・GridView列定義
<asp:BoundField DataField="hoge" HeaderText="消す列" ItemStyle-CssClass=item-invisible HeaderStyle-CssClass=item-invisible>
</asp:BoundField>


ItemとHeader(必要があればFooterも)のスタイルをdisplay:noneにすれば消えてくれる。当然html上は出力されているのだが、もうサーバーサイドで値が取れないと四苦八苦するよりこちらの方が断然楽である。



0 件のコメント:

コメントを投稿