ArrayListをバインドするには
● CheckBoxListにArrayListをバインドするサンプル

図 CheckBoxListにArrayListをバインドするサンプル
ここで解説するサンプルは、CheckBoxListにArrayListをバインドしてアイテムを表示しています。CheckBoxListからアイテムをチェックしてOKボタンをクリックすると、チェックされているアイテムが表示されます。このサンプルでは、ListItemのValueプロパティを省略していますのでTextプロパティの内容が表示されます。
このサンプルでは、以下のノウハウを習得することができます。
▲ ArrayListにアイテムを追加する方法
▲ CheckBoxListにArrayListをバインドする方法
ArrayListにアイテムを追加するには、ArrayListのAdd()メソッドを使用します。行7-12では、4個のアイテムをArrayListに追加しています。ArrayListに格納されているアイテムをCheckBoxListに表示させるには、CheckBoxListのDataSourceプロパティに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-23のFor Each…Nextループでは、CheckBoxListのItemsコレクションからListItemを取り出しています。ListItemのSelectedプロパティを参照してアイテムがチェックされているか調べて、チェックされているときは、TextとValueプロパティの内容を表示しています。ArrayListのAdd()メソッドでListItemを追加するとき、Valueを省略していますのでTextの内容が表示されます。ArrayListのAdd()メソッドで、ListItemを追加するとき、TextとValueを設定する方法については、後述する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
|
ArrayListのAdd()メッソドでListItemを追加するときText/Valueを設定するには
ArrayListのAdd()メソッドで、ListItemを追加するときText/Valueプロパティを設定するには、New ListItem(“Text”, “Value”)のように記述します。DropDownListにArrayListをバインドするときは、DropDownListのDataValueFieldとDataTextFieldプロパティにListItemのValue/Textプロパティを設定します。
Dim arrDotNet As New
ArrayList()
|
Tip
|
ArrayListを昇順/降順に並べ替えるには
ArrayListに格納されているアイテムを並べ替えるには、ArrayListのSort()/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:
|