ASP.NET Listコントロールのホームへ戻る

アイテム(ListItem)をデザイン時に定義するには

 

  CheckBoxListのアイテムをデザイン時に定義するサンプル

 

CheckBoxListのアイテムをデザイン時に定義するサンプル

 

ここで解説するサンプルでは、CheckBoxListVisual Studio .NET(VS.NET)の言語を表示させています。ListItemTextには言語のフル名称(Visual Basic .NET)Valueには省略名(VB.NET)を設定しています。

 

CheckBoxListから興味のある言語をチェックしてOKボタンをクリックすると、チェックした言語が表示されます。CheckBoxListからは、複数のアイテムをチェックすることができます。

 

このサンプルでは、以下のノウハウを習得することができます。

 

   CheckBoxListのアイテムをデザイン時に定義する方法

   CheckBoxListからチェックしたアイテムを表示する方法

 

CheckBoxListに表示するアイテムをデザイン時に設定するには、ListItemを使用します。ListItemには、TextValueプロパティがサポートされています。Textには、CheckBoxListに表示されるテキストを設定します。Valueには、値を設定します。たとえば、商品マスタをCheckBoxListに表示するとき、ListItemTextには商品名、Valueには商品コードを設定します。このサンプルでは、CheckBoxListVisual Studio .NETの言語を表示させています。ListItemTextにはフル名称、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ループでCheckBoxListItemsコレクションからListItemを取り出してアイテムがチェックされているか調べます。ListItemがチェックされているときは、SelectedプロパティにTrueが格納されています。チェックされていないときは、Falseが格納されています。ListItemがチェックされているときは、TextValueプロパティの内容を取り出して表示します。行10-11では、String.Format()メソッドで文字列を生成してLabelTextプロパティに設定しています。String.Format()のプレースホルダー{0}には、ListItemTextが挿入されます。プレースホルダー{1}には、ListItemValueが挿入されます。たとえば、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のアイテムをデザイン時に定義するサンプル

 

ここで解説するサンプルでは、RadioButtonListVisual Studio .NETの言語を表示させています。ListItemTextにはフル名称(Visual Basic .NET)Valueには省略名(VB.NET)を設定しています。

 

RadioButtonListから興味のある言語をチェックするとページがポストバックされて、チェックしたアイテムが表示されます。RadioButtonListは、CheckBoxListのように複数のアイテムをチェックすることはできません。

 

このサンプルでは、以下のノウハウを習得することができます。

 

   RadioButtonListのアイテムをデザイン時に設定する方法

   RadioButtonListからアイテムをチェックしたときにポストバックさせる方法

   RadioButtonListからチェックしたアイテムを表示する方法

 

RadioButtonListに表示するアイテムをデザイン時に設定するには、ListItemを使用します。ListItemTextには、RadioButtonListに表示されるテキストを設定します。Valueには、値を設定します。このサンプルでは、RadioButtonListVisual Studio .NETの言語を表示させています。ListItemTextには言語名、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イベントに制御が渡ります。このイベントでは、RadioButtonListSelectedItem.TextSelectedItem.Valueプロパティを参照してチェックしたアイテムのテキストと値を表示しています。SelectedItem.Textには、ListItemTextの内用が格納されています。SelectedItem.Valueには、ListItemValueの内容が格納されています。ListItemValueを省略したときは、ListItemTextの内容が格納されます。

 

  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イベントを使用しています。このイベントを使用するときは、AutoPostBackTrueを設定する必要があります。OnSelectedIndexChangedイベントを使用しないときは、ButtonでページをポストバックさせてPage_Loadイベントでアイテムを調べます。

 

ASP.NET Listコントロールのホームへ戻る