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

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

 

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

 

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

 

このサンプルは、ListBoxVisual Studio .NET(VS.NET)の言語を表示させています。ListBoxからアイテムを選択してOKボタンをクリックすると、選択したアイテムが表示されます。このサンプルは、ListBoxSelectionModeプロパティにMultipleを設定していますので複数のアイテムを選択することができます。複数のアイテムを個別に選択するときは、Ctrlキーを押しながらアイテムをクリックします。連続した範囲を選択するには、Shiftキーを押しながら先頭と最後のアイテムをクリックします。

 

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

 

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

  ListBoxから選択したアイテムを表示する方法

 

ListBoxに表示するアイテムをデザイン時に設定するには、ListItemを使用します。ListItemには、TextValueプロパティがサポートされていますので、ListBoxに表示するテキストと値を個別に設定することができます。行25-28では、Visual Studio .NETの言語を定義しています。ListItemTextには言語のフル名称、Valueには略称を設定しています。行24では、SelectionModeプロパティにMultipleを設定していますのでListBoxから複数のアイテムを選択することができます。SelectionModeSingleを設定したときは1個のアイテムしか選択できません。

 

23: <asp:ListBox id="lstVsNet" runat="server"
 24:   SelectionMode="Multiple">
 25:   <asp:ListItem Text="Visual Basic .NET" Value="VB.NET" />
 26:   <asp:ListItem Text="Visual C++ .NET" Value="C++.NET" />
 27:   <asp:ListItem Text="Visual C#" Value="C#.NET" />
 28:   <asp:ListItem Text="Visual J#" Value="J#.NET" />
 29: </asp:ListBox>

 

このサンプルでは、ListBoxから選択したアイテムを表示するのにPage_Loadイベントを使用しています。ListBoxSelectionModeMultipleを設定して、複数のアイテムを選択できるようにしたときは、OnSelectedIndexChangedイベントの代わりにPage_Loadイベントを使用します。SelectionModeSingleを設定して1個のアイテムのみ選択できるようにしたときは、OnSelectedIndexChangedイベントを使用することもできます。

 

複数アイテムの選択を許可したときは、ページをポストバックさせるのにButtonを使用します。1個のアイテムのみ許可したときは、アイテムを選択したときにポストバックさせるためにAutoPostBackプロパティにTrueを設定します。

 

OKボタンをクリックするとページがポストバックされて、Page_Loadイベントに制御が渡ります。行5Ifでは、IsPostBackプロパティを参照してページがポストバックされたか調べています。ポストバックされたときは、行8-13For Each…NextループでListBoxItemsコレクションからListItemを取り出します。ListItemSelectedプロパティを参照してアイテムが選択されているか調べます。アイテムが選択されているときは、LabelTextプロパティにListItemTextValueの値を設定して表示します。

 

  4: Sub Page_Load()
  5:   If IsPostBack Then
  6:     lblMessage.Text = "<hr>"
  7:     Dim li As ListItem
  8:     For Each li in lstVsNet.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

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