解説

実例で学ぶASP.NETプログラミング

第11回 ASP.NETで進化する「検索画面」の構築

小田原 貴樹(うりゅう)
2004/03/20

RadioButtonListコントロールを初期化するための関数を作成する

 RadioButtonListコントロールの内容を初期化するための関数を作成しよう。以下のコードを参照してほしい。

1: Public Sub NOMIIN(ByVal RL As RadioButtonList)
2:   RL.Items.Clear()
3:   RL.Enabled = True
4:   RL.Items.Add(New ListItem("ロック(0〜5度)", "ロック"))
5:   RL.Items.Add(New ListItem("冷(5〜10度)", "冷"))
6:   RL.Items.Add(New ListItem("常温(室温)", "常温"))
7:   RL.Items.Add(New ListItem("ぬる燗(35〜40度)", "ぬる燗"))
8:   RL.Items.Add(New ListItem("熱燗(45〜50度)", "熱燗"))
9: End Sub
RadioButtonListコントロールの「飲み方」に初期項目を格納する関数

 上のコードは5つのRadioButtonListコントロールのうちの1つに「飲み方」の初期項目の内容(「ロック」「冷」「常温」「ぬる燗」「熱燗」の5項目)を格納するための関数の内容だ。一般的にRadioButtonListコントロールに項目を追加するには、動的な情報の場合にはデータ連結を利用することが多く、静的な情報の場合にはデザイナ画面上で指定することが多いだろう。実行時にコードを利用して静的な情報を格納するケースは少ないかもしれないが、それが必要なときもあるので、ここではそのコードの内容を解説していこう。

 2行目で、まず指定のRadioButtonListコントロールの内容をクリアする。3行目は、指定のRadioButtonListコントロールを有効化している。ここまではお決まりの初期化処理である。

 4目から8行目が、RadioButtonListコントロールに項目を格納している部分だ。RadioButtonListコントロールなどリストコントロール系に新しい項目を追加する場合の、構文は以下のようになる。

<コントロール>.Items.Add(New ListItem("表示文字列", "内容文字列"))

 コントロールのItemsコレクションのAddメソッドを利用して内容を格納することになる。「表示文字列」は実際に画面に表示されることになる文字列で、「内容文字列」は選択された際に受け渡される内容の文字列だ。コードを見てもらえば分かるとおり、表示文字列の方はユーザーに対して分かりやすくするために注釈なども追加しているが、内容文字列の方は後でフィルタとして利用しなければならないので、商品情報に格納されているとおりの形式でなければならない。

 これで「飲み方」の項目内容を格納する関数は完成した。この関数を実行すればRadioButtonListコントロールに内容が格納される。ほかの4つの関数も内容はほとんど同じなので、以下を参照してほしい。

1: Public Sub AMAIN(ByVal RL As RadioButtonList)
2:   RL.Items.Clear()
3:   RL.Enabled = True
4:   RL.Items.Add(New ListItem("甘い", "1"))
5:   RL.Items.Add(New ListItem("ちょい甘", "2"))
6:   RL.Items.Add(New ListItem("普通", "3"))
7:   RL.Items.Add(New ListItem("ちょい辛", "4"))
8:   RL.Items.Add(New ListItem("辛い", "5"))
9: End Sub
「甘辛」に初期項目を格納する関数

 「甘辛」の項目内容を格納するための関数。甘辛の度合いは、商品情報では数値で表現されているが、そのままではユーザーにとって分かりにくいので表示文字列は文章で格納している。

 1: Public Sub KAKAKUIN(ByVal RL As RadioButtonList)
 2:   RL.Items.Clear()
 3:   RL.Enabled = True
 4:   RL.Items.Add(New ListItem("1,000円未満", "小売価格 < 1000"))
 5:   RL.Items.Add(New ListItem("1,000円〜1,999円", "小売価格 >= 1000 AND 小売価格 <= 1999"))
 6:   RL.Items.Add(New ListItem("2,000円〜2,999円", "小売価格 >= 2000 AND 小売価格 <=  1999"))
 7:   RL.Items.Add(New ListItem("3,000円〜4,999円", "小売価格 >= 3000 AND 小売価格 <=  4999"))
 8:   RL.Items.Add(New ListItem("5,000円〜9,999円", "小売価格 >= 5000 AND 小売価格 <=  9999"))
 9:   RL.Items.Add(New ListItem("10,000円以上", "小売価格 > 10000"))
10: End Sub
「価格帯」に初期項目を格納する関数

 「価格帯」の項目内容を格納するための関数。内容文字列は、フィルタとして利用されるためWHERE条件文の形式に従う必要がある。ユーザーには表示文字列しか表示されないので、内容文字列は自由な形式で構わないということだ。

 1: Public Sub SIZEIN(ByVal RL As RadioButtonList)
 2:   RL.Items.Clear()
 3:   RL.Enabled = True
 4:   RL.Items.Add(New ListItem("200ml未満", "容量 < 200"))
 5:   RL.Items.Add(New ListItem("200ml〜399ml", "容量 >= 200 AND 容量 <= 399"))
 6:   RL.Items.Add(New ListItem("400ml〜749ml", "容量 >= 400 AND 容量 <= 749"))
 7:   RL.Items.Add(New ListItem("750ml〜999ml", "容量 >= 750 AND 容量 <= 999"))
 8:   RL.Items.Add(New ListItem("1000ml〜1499ml", "容量 >= 1000 AND 容量 <= 1499"))
 9:   RL.Items.Add(New ListItem("1500ml以上", "容量 > 1500"))
10: End Sub
「容量」に初期項目を格納する関数

 「容量」の内容を格納するための関数。「価格帯」を格納するための関数とほとんど内容は変わらない。

 1: Public Sub SAKEIN(ByVal RL As RadioButtonList)
 2:   RL.Items.Clear()
 3:   RL.Enabled = True
 4:   Dim SSET As New CASET
 5:   DC.FDCA(SSET)
 6:   RL.DataSource = SSET
 7:   RL.DataMember = "酒カテゴリ"
 8:   RL.DataTextField = "酒種"
 9:   RL.DataValueField = "ID"
10:   RL.DataBind()
11: End Sub
「お酒の種類」に初期項目を格納する関数

 「お酒の種類」の内容を格納するための関数。この関数だけはデータ連結を利用しているので、簡単に解説しておこう。

 4行目と5行目で、データベースから酒カテゴリのデータを取得している。

 6行目で、取得したデータを指定のRadioButtonListコントロールに割り当てている。

 7行目は、割り当てたデータセットのうち、実際に利用するテーブルを指定するために、DataMemberプロパティにテーブル名を割り当てている。

 8行目と9行目が、これまでの解説でいえば「表示文字列」と「内容文字列」の指定に当たる。8行目でDataTextFieldプロパティに列「酒種」を割り当て、表示文字列を指定している。9行目でDataValueFieldプロパティに列「ID」を割り当て、内容文字列を指定している。

 10行目はASP.NETでデータ連結をする際のお決まりで、コントロールの「DataBind」メソッドを実行し、実際のデータ表示を行っている。

 ここまでの作業で、「検索画面」を表示するためのコーディングは完了した。必要に応じてデバッグ実行して正しく表示されるかどうかを確認してほしい。次は、ユーザーが実際に項目を選択した場合の処理を実装しよう。


 INDEX
  実例で学ぶASP.NETプログラミング
  第11回 ASP.NETで進化する「検索画面」の構築
    1.Web系システムにおける「検索画面」の必要性と問題点
    2.検索画面のデザインを作成する
  3.RadioButtonListコントロールを初期化するための関数を作成する
    4.ユーザーが項目を選択した際のイベント処理を実装する
    5.ユーザーが選択を解除した際のイベント処理を実装する
    6.検索結果画面の作成と実行結果の確認
 
インデックス・ページヘ  「解説 :実例で学ぶASP.NETプログラミング」


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間