■GridViewの列がNullのとき特定の文字を表示する (GridView01StepUp1.aspx)
GridView01.aspxに得意先テーブルのID、得意先、ファックスを表示すると、ファックスがNullのとき空白が表示されます。このような場合、空白の代わりに「なし」、「未入力」などの文字を表示するするように改善します。
このサンプルは、以下のノウハウを習得することができます。
▼GridViewに表示する列がNullのとき表示する文字を指定する方法

図 ファックスがNullのとき「なし」を表示
1. 新規Webページ作成
ソリューションエクスプローラのプロジェクトの右クリックから[新しい項目の追加]を選択して、新規Webページ「GridView01StepUp1.aspx」を作成します。デザイナの最下位から[ソース]をクリックしてソースビューに切り替えたら、GridView01.aspxのソースビューからGridView1とSqlDataSource1のソースコードをコピー&貼り付けします。
Tip
|
GridViewとSqlDataSourceを右クリックからコピーするには
GridView01.aspxのソースビューからGridView1のソースコードをコピーするには、<asp:GridViewの行左側の[-]のボタンをクリックしてGridViewを折りたたみます。「<asp:GridView …>…</asp:GridVeiw>」がボックス化されたらボックスの右クリックから[コピー]を選択します。同様の手順で、SqlDataSourceを折りたたんでボックス化したら右ボタンから[コピー]を選択します。
図 GridViewを折りたたんでボックス化したら右クリックして[コピー]を選択
|
2. 列の編集
「GridViewタスク」メニューから[列の編集]を選択します。「フィールド」ダイアログが表示されたら、「選択されたフィールド」から[ファックス]を選択します。右側のBoundFieldプロパティからNullDisplayTextプロパティに「なし」を入力したら、[OK]をクリックしてダイアログを閉じます。

図 ファックスのNullDisplayTextプロパティに「なし」を設定
3. ブラウザに表示
VWD 2005のツールバーから[デバッグの開始]ボタンをクリックしてブラウザに表示します。ブラウザが起動されて、GridViewにCustomersテーブルが表示されます。Customersテーブルのファックス(Fax)の列のNullのとき、空白の代わりに「なし」が表示されます。

図ファックスがNullのとき「なし」が表示された
◆解説
GridViewの列がNullのとき空白の代わりに特定の文字列を表示するには、BoundField列のNullDisplayTextプロパティに文字列を設定します。たとえば、ファックスがNullのとき「なし」を表示するには、NullDisplayTextプロパティに「なし」を設定します。
<asp:BoundField
DataField="Fax"
HeaderText="ファックス"
NullDisplayText="なし" />
「なし」を太字、イタリック、赤などで表示するには、HTMLタグを付加します。
NullDisplayText="<b>なし</b>" ⇒太字で表示
NullDisplayText="<i>なし</i>" ⇒イタリック体で表示
NullDisplayText="<font color=red>なし</font>" ⇒赤で表示
NullDisplayTextにHTMLタグを付加したときは、BoundFieldのHtmlEncodeプロパティにFalseを設定することを忘れないでください。