アイテム(ListItem)をデザイン時に定義するには
● CheckBoxListのアイテムをデザイン時に定義するサンプル

図 CheckBoxListのアイテムをデザイン時に定義するサンプル
ここで解説するサンプルでは、CheckBoxListにVisual Studio .NET(VS.NET)の言語を表示させています。ListItemのTextには言語のフル名称(Visual Basic .NET)、Valueには省略名(VB.NET)を設定しています。
CheckBoxListから興味のある言語をチェックしてOKボタンをクリックすると、チェックした言語が表示されます。CheckBoxListからは、複数のアイテムをチェックすることができます。
このサンプルでは、以下のノウハウを習得することができます。
▲ CheckBoxListのアイテムをデザイン時に定義する方法
▲ CheckBoxListからチェックしたアイテムを表示する方法
CheckBoxListに表示するアイテムをデザイン時に設定するには、ListItemを使用します。ListItemには、TextとValueプロパティがサポートされています。Textには、CheckBoxListに表示されるテキストを設定します。Valueには、値を設定します。たとえば、商品マスタをCheckBoxListに表示するとき、ListItemのTextには商品名、Valueには商品コードを設定します。このサンプルでは、CheckBoxListにVisual Studio .NETの言語を表示させています。ListItemのTextにはフル名称、Valueには省略名を設定しています。
23: <asp:CheckBoxList id="chklVsNet"
runat="server">
24: <asp:ListItem Text="Visual
Basic .NET" Value="VB.NET" />
25: <asp:ListItem
Text="Visual C++ .NET" Value="C++.NET" />
26: <asp:ListItem
Text="Visual C#" Value="C#.NET" />
27: <asp:ListItem
Text="Visual J#" Value="J#.NET" />
28:
</asp:CheckBoxList>
CheckBoxListから興味のある言語をチェックしてOKボタンをクリックすると、ページがポストバックされてPage_Loadイベントが発生します。Page_Loadイベントでは、ページがポストバックされた状態か調べます。ポストバックされたときは、For Each…NextループでCheckBoxListのItemsコレクションからListItemを取り出してアイテムがチェックされているか調べます。ListItemがチェックされているときは、SelectedプロパティにTrueが格納されています。チェックされていないときは、Falseが格納されています。ListItemがチェックされているときは、TextとValueプロパティの内容を取り出して表示します。行10-11では、String.Format()メソッドで文字列を生成してLabelのTextプロパティに設定しています。String.Format()のプレースホルダー{0}には、ListItemのTextが挿入されます。プレースホルダー{1}には、ListItemのValueが挿入されます。たとえば、Visual Basic .NETがチェックされているときは、”<li>Visual Basic .NET (<b>VB.NET</b>)”の文字列が生成されます。
4: Sub Page_Load()
5: If IsPostBack Then
6: lblMessage.Text =
"<hr>"
7: Dim li As ListItem
8: For Each li in
chklVsNet.Items
9: If
li.Selected Then
10:
lblMessage.Text &= String.Format("<li>{0}
(<b>{1}</b>)", _
11:
li.Text, li.Value)
12: End If
13: Next
14: End If
15: End Sub
CheckBoxListでは、複数のアイテムをチェックすることができますので、OnSelectedIndexChangedイベントを使用しないでPage_Loadイベントを使用します。なお、Page_Loadイベントを発生させるには、Buttonを使用してページをポストバックさせます。
● RadioButtonListのアイテムをデザイン時に定義するサンプル

図 RadioButtonListのアイテムをデザイン時に定義するサンプル
ここで解説するサンプルでは、RadioButtonListにVisual Studio .NETの言語を表示させています。ListItemのTextにはフル名称(Visual Basic .NET)、Valueには省略名(VB.NET)を設定しています。
RadioButtonListから興味のある言語をチェックするとページがポストバックされて、チェックしたアイテムが表示されます。RadioButtonListは、CheckBoxListのように複数のアイテムをチェックすることはできません。
このサンプルでは、以下のノウハウを習得することができます。
▲ RadioButtonListのアイテムをデザイン時に設定する方法
▲ RadioButtonListからアイテムをチェックしたときにポストバックさせる方法
▲ RadioButtonListからチェックしたアイテムを表示する方法
RadioButtonListに表示するアイテムをデザイン時に設定するには、ListItemを使用します。ListItemのTextには、RadioButtonListに表示されるテキストを設定します。Valueには、値を設定します。このサンプルでは、RadioButtonListにVisual Studio .NETの言語を表示させています。ListItemのTextには言語名、Valueには省略名を設定しています。RadioButtonListからアイテムをチェックしたときに、ページがポストバックされるようにAutoPostBackプロパティにTrueを設定しています。
15: <asp:RadioButtonList id="radlVsNet"
runat="server"
16: AutoPostBack="True"
17:
OnSelectedIndexChanged="radlVsNet_SelectedIndexChanged">
18: <asp:ListItem Text="Visual
Basic .NET" Value="VB.NET" />
19: <asp:ListItem
Text="Visual C++ .NET" Value="C++.NET" />
20: <asp:ListItem
Text="Visual C#" Value="C#.NET" />
21: <asp:ListItem
Text="Visual J#" Value="J#.NET" />
22:
</asp:RadioButtonList>
RadioButtonListからアイテムをチェックするとページがポストバックされて、OnSelectedIndexChangedイベントに制御が渡ります。このイベントでは、RadioButtonListのSelectedItem.TextとSelectedItem.Valueプロパティを参照してチェックしたアイテムのテキストと値を表示しています。SelectedItem.Textには、ListItemのTextの内用が格納されています。SelectedItem.Valueには、ListItemのValueの内容が格納されています。ListItemのValueを省略したときは、ListItemのTextの内容が格納されます。
4: Sub radlVsNet_SelectedIndexChanged(s
As Object, e As EventArgs)
5: lblMessage.Text =
String.Format("<hr>{0} (<b>{1}</b>)", _
6:
radlVsNet.SelectedItem.Text, radlVsNet.SelectedItem.Value)
7: End Sub
このサンプルでは、チェックしたアイテムを調べるのにOnSelectedIndexChangedイベントを使用しています。このイベントを使用するときは、AutoPostBackにTrueを設定する必要があります。OnSelectedIndexChangedイベントを使用しないときは、ButtonでページをポストバックさせてPage_Loadイベントでアイテムを調べます。