.NET TIPS [ASP.NET]DataGridコントロールにスクロールバーを付けるには?デジタルアドバンテージ2004/01/16 |
|
|
DataGridコントロールはテーブル形式でデータを一覧表示できるが、通常はデータ数や各項目のデータのサイズなどが固定でないため、データを表示するまでそれが画面上で占める大きさを特定できない。このため、テキストやほかのコントロールなどとともに使用する場合には、配置や画面デザインを決めにくい。
このような場合には、次の画面のようにDataGridコントロールにスクロールバーを付けることにより、その表示領域を固定することができる。
スクロールバーの付いたDataGridコントロール |
Visual Studio .NETでFlow Layout Panelコントロールを使用する
DataGridコントロールにスクロールバーを付けるには、Visual Studio .NETを使用している場合、HTMLコントロールの1つとして用意されている「Flow Layout Panelコントロール」を利用すればよい。
これにはまず、ツールボックスの[HTML]の項目からFlow Layout Panelコントロールをフォーム上に配置し、DataGridコントロールを表示したい大きさにサイズを調節する。次に、それが選択された状態でプロパティ・ウィンドウの[style]をクリックして選択し、これにより右隅に表示される[...]ボタンをクリックして[スタイル ビルダ]ダイアログを開く。
[スタイル ビルダ]ダイアログでは、左側のエリアから[レイアウト]を選択し、次の画面のように[オーバーフロー]で「必要に応じてスクロールバーを使用」を選択し、[OK]ボタンをクリックする。
Flow Layout Panelコントロールの[スタイル ビルダ]ダイアログ | ||||||
|
そして、配置したFlow Layout Panelコントロールの内側にDataGridコントロールを配置する。このときDataGridコントロールの幅(Widthプロパティ)を100%に設定しておくと、実行時にDataGridコントロールがぴったり収まり、横スクロールバーなしで表示される(表示するデータ項目が折り返せない場合などはこの限りではない)。
DataGridコントロールを内部に配置したFlow Layout Panelコントロール |
以上の設定により、実行時にFlow Layout PanelコントロールよりもDataGridコントロールが大きくなる場合にはスクロールバーが表示されるようになる。
<div>要素のstyle属性でoverflowプロパティを設定
Visual Studio .NETのデザイン画面でHTMLを表示させても分かるように、Flow Layout Panelコントロールは単なる<div>要素を出力するだけのものだ。DataGridコントロールのように、このコントロールに対応したクラスが存在するわけではない。
aspxファイルでコードによりDataGridコントロールにスクロールバーを設定するには、次のようにして<asp:DataGrid>要素を<div>タグで囲めばよい。
<div style="overflow:auto; width:600; height:400">
<asp:DataGrid ……>
……
</asp:DataGrid>
</div>
ここでのポイントはstyle属性で指定したoverflowプロパティだ。この値を「auto」に設定しておくことにより、必要に応じてスクロールバーが表示される。
カテゴリ:Webフォーム 処理対象:DataGridコントロール 使用ライブラリ:DataGridコントロール 使用ライブラリ:Flow Layout Panelコントロール |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|