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

ArrayListをバインドするには

 

  CheckBoxListArrayListをバインドするサンプル

 

CheckBoxListArrayListをバインドするサンプル

 

ここで解説するサンプルは、CheckBoxListArrayListをバインドしてアイテムを表示しています。CheckBoxListからアイテムをチェックしてOKボタンをクリックすると、チェックされているアイテムが表示されます。このサンプルでは、ListItemValueプロパティを省略していますのでTextプロパティの内容が表示されます。

 

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

 

  ArrayListにアイテムを追加する方法

▲ CheckBoxListArrayListをバインドする方法

 

ArrayListにアイテムを追加するには、ArrayListAdd()メソッドを使用します。行7-12では、4個のアイテムをArrayListに追加しています。ArrayListに格納されているアイテムをCheckBoxListに表示させるには、CheckBoxListDataSourceプロパティにArrayListを設定して、DataBind()メソッドでバインドします。

 

  6:     Dim arrDotNet As New ArrayList()
  7:     With arrDotNet
  8:       .Add("Visual Basic .NET")
  9:       .Add("Visual C++ .NET")
 10:       .Add("Visual C# .NET")
 11:       .Add("Visual J# .NET")
 12:     End With
 13:     chklVsNet.DataSource = arrDotNet
 14:     chklVsNet.DataBind()

 

18-23For Each…Nextループでは、CheckBoxListItemsコレクションからListItemを取り出しています。ListItemSelectedプロパティを参照してアイテムがチェックされているか調べて、チェックされているときは、TextValueプロパティの内容を表示しています。ArrayListAdd()メソッドでListItemを追加するとき、Valueを省略していますのでTextの内容が表示されます。ArrayListAdd()メソッドで、ListItemを追加するとき、TextValueを設定する方法については、後述するTipを参照してください。

 

16:     lblMessage.Text = "<hr>"
 17:     Dim li As ListItem
 18:     For Each li in chklVsNet.Items
 19:       If li.Selected Then
 20:         lblMessage.Text &= String.Format("<li>{0} (<b>{1}</b>)", _
 21:           li.Text, li.Value)
 22:       End If
 23:     Next

 

 

Tip

ArrayListAdd()メッソドでListItemを追加するときText/Valueを設定するには

 

ArrayListAdd()メソッドで、ListItemを追加するときText/Valueプロパティを設定するには、New ListItem(“Text”, “Value”)のように記述します。DropDownListArrayListをバインドするときは、DropDownListDataValueFieldDataTextFieldプロパティにListItemValue/Textプロパティを設定します。

 

Dim arrDotNet As New ArrayList()
With arrDotNet
  .Add(New ListItem("---
言語選択 ---",""))
  .Add(New ListItem("Visual Basic .NET","VB.NET"))
  .Add(New ListItem("Visual C++ .NET","C++.NET"))
  .Add(New ListItem("Visual C# .NET","C#.NET"))
  .Add(New ListItem("Visual J# .NET","J#.NET"))
End With
With chklVsNet
  .DataSource = arrDotNet
  .DataTextField = "Text"
  .DataValueField = "Value"
  .DataBind()
End With

 

 

Tip

ArrayListを昇順/降順に並べ替えるには

 

ArrayListに格納されているアイテムを並べ替えるには、ArrayListSort()/Reverse()メソッドを使用します。昇順に並べ替えするにはSort()メソッド、降順に並べ替えするには、Sort()/Reverse()メソッドをペアで使用します。

 

Sub Page_Load()

  Dim arrVsNet As New ArrayList()

  With arrVsNet

    .Add("VB.NET")

    .Add("C++.NET")

    .Add("C#.NET")

    .Add("J#.NET")

  End With

  Response.Write("Before Sort:<br>")

  PrintArray(arrVsNet)

  arrVsNet.Sort()

  Response.Write("After Sort(Ascending Order):<br>")

  PrintArray(arrVsNet)

  Response.Write("After Sort(Descending Order):<br>")

  arrVsNet.Reverse()

  PrintArray(arrVsNet)

End Sub

 

Sub PrintArray(arrlst As IEnumerable)

  Dim i As Integer = 0

  Dim iEnum As System.Collections.IENumerator = arrlst.GetEnumerator()

  While iEnum.MoveNext()

    Response.Write(String.Format("{0}=> {1}<br>", _

      i, iEnum.Current))

    i += 1 

  End While

End Sub

 

上記サンプルを実行すると、以下のように表示されます。

 

Before Sort:
0=> VB.NET
1=> C++.NET
2=> C#.NET
3=> J#.NET
After Sort(Ascending Order):
0=> C#.NET
1=> C++.NET
2=> J#.NET
3=> VB.NET
After Sort(Descending Order):
0=> VB.NET
1=> J#.NET
2=> C++.NET
3=> C#.NET

 

 

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