SelectionListコントロール
SelectionListは、5-9件ぐらいのアイテムを表示するときに使用します。アイテム件数が多いときは、List/ObjectListのページング機能を利用して表示します。SelectionListには、アイテムをラジオボタン、チェックボックス、ドロップダウンリスト、リストボックスの形式で表示することができます。チェックボックス、リストボックス形式で表示するときは、複数のアイテムを選択することができます。
書式:
<mobile:SelectionList id=”String” runat=”server”
DataMemeber=”String”
DataSource=”Object”
DataTextField=”String”
DataValueField=”String”
SelectType=”{DropDown|ListBox|Radio|MultiSelectListBox|CheckBox}”
Titile=”String”
OnItemDataBind=”Eventhandler”
OnSelectedIndexChanged=”Eventhandler”>
<Item Text=”String” Value=”String” Selected=”{False|True}” />
</mobile:SelectionList>
● SelectionListにアイテムをラジオボタン形式で表示するサンプル(Radio)


図 SelectionListにアイテムをラジオボタン形式で表示するサンプル(Radio)
このサンプルは、SelectionListのSelectTypeプロパティにRadioを設定してアイテムをラジオボタンで表示しています。SelectionListは、単独でフォームをポストバックさせることができないので通常Commandコントロールと併用して使用します。ラジオボタンからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandのOnClickイベントに制御が渡ります。
OnClickイベントでは、SelectionListのSelectionプロパティからTextプロパティの値を取得して表示しています。Selectionプロパティには、ラジオボタンから選択したアイテム(MobileListItem)が格納されています。アイテムのText/Valueを取得するには、MobileListItemのText/Valueプロパティを参照します。
SelectionList.Selection.Text è C#.NET
SelectionList.Selection.Value è Visual C# .NET
● SelectionListにアイテムをチェックボックス形式で表示するサンプル(CheckBox)


図 SelectionListにアイテムをチェックボックス形式で表示するサンプル(CheckBox)
このサンプルは、SelectionListのSelectTypeプロパティにCheckBoxを設定してアイテムをチェックボックスで表示しています。チェックボックスからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandのOnClickイベントに制御が渡ります。チェックボックスからは、複数のアイテムを選択することができます。
OnClickイベントでは、SelectionListのItemsコレクションからMobileListItemを取り出してSelectedプロパティを調べています。アイテムが選択されているときは、TextViewのTextプロパティにアイテムのValue/Textの値を設定して表示します。
● SelectionListにアイテムをドロップダウンリスト形式で表示するサンプル(DropDown)


図 SelectionListにアイテムをドロップダウンリスト形式で表示するサンプル(DropDown)
このサンプルは、SelectionListのSelectTypeプロパティにDropDownを設定してアイテムをドロップダウンリストに表示しています。ドロップダウンリストからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandのOnClickイベントに制御が渡ります。
OnClickイベントでは、SelectionListのSelectionプロパティからTextプロパティの値を取得して表示しています。
● SelectionListにアイテムをリストボックス形式で表示するサンプル(ListBox)


図 SelectionListにアイテムをリストボックス形式で表示するサンプル(ListBox)
このサンプルは、SelectionListのSelectTypeプロパティにListBoxを設定してアイテムをリストボックスに表示しています。Mobileのデバイスによっては、サンプルのようにドロップダウンリストと同じように表示されます。
リストボックスからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandのOnClickイベントに制御が渡ります。
OnClickイベントでは、SelectionListのSelectionプロパティからTextプロパティの値を取得して表示しています。
● SelectionListに複数アイテム選択可能なリストボックスを表示するサンプル(MultiSelectListBox)


図 SelectionListに複数アイテム選択可能なリストボックスを表示するサンプル(MultiSelectListBox)
このサンプルは、SelectionListのSelectTypeプロパティにMultiSelectListBoxを設定してアイテムをリストボックスに表示しています。Mobileのデバイスによっては、サンプルのようにチェックボックスと同じよう表示されます。
リストボックスからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandのOnClickイベントに制御が渡ります。
OnClickイベントでは、SelectionListのItemsコレクションからMobileListItemを取り出してSelectedプロパティを調べています。アイテムが選択されているときは、MobileListItemからValue/Textの値を取得して表示します。
● SelectionListにアイテムをランタイム時に追加するサンプル

図 SelectionListにアイテムをランタイム時に追加するサンプル
このサンプルは、SelectionListに表示するアイテムをランタイム時に登録しています。SelectionListにアイテムを登録するには、ItemsコレクションのAdd()メソッドを使用します。Add()メソッドの引数には、MobileListItemを指定します。MobileListItem()の引数には、Text/Valueの値を指定します。
SelectionList.Items.Add(
New MobileListItem("Text","Value") )
SelectionListにデフォルトのアイテムを表示するには、SelectedIndexプロパティにアイテムのインデックス番号を設定します。
SelectionList.SelectedIndex = intItemIndex
● SelectionListにArrayListをバインドするサンプル

図 SelectionListにArrayListをバインドするサンプル
このサンプルは、SelectionListにArrayListをバインドして表示しています。ArrayListには、VisualStudioのオブジェクトを格納しています。VisualStudioクラスには、LongNameとShortNameプロパティがあります。SelectionListにArrayListをバインドするには、DataSourceプロパティにArrayListのオブジェクトを設定してDataBind()メソッドでバインドします。DataTextField、DataValueFieldプロパティには、VisualStudioのShortName、LongNameプロパティを設定します。
8: Class VisualStudio
9: Private _mLongName As String
10: Private _mShortName As String
11:
12: Public Sub New(strLongName As String,
strShortName As String)
13: _mLongName = strLongName
14: _mShortName =strShortName
15: End Sub
16:
17: Public ReadOnly Property LongName As
String
18: Get
19: Return
_mLongName
20: End Get
21: End Property
22:
23: Public ReadOnly Property ShortName As
String
24: Get
25: Return
_mShortName
26: End Get
27: End Property
28: End Class
● SelectionListにDataTableをバインドするサンプル

図 SelectionListにDataTableをバインドするサンプル
このサンプルは、SelectionListにDataTableをバインドして表示しています。SelectionListにDataTableをバインドするには、DataSourceプロパティにDataTableのオブジェクトを設定してDataBind()メソッドでバインドします。DataTextField、DataValueFieldプロパティには、DataTableのShortName、LongNameのカラムを設定します。DataTableは、CreateDataTable()関数を呼び出して生成します。
CreateDataTable()関数の行32では、DataTableを生成しています。行36-37では、DataTableにShortName、LongNameのカラムを追加しています。行39-42では、DataTableに新規レコードを追加しています。行59では、戻り値としてDataTableのオブジェクトを返しています。
31: Function CreateDataTable() As DataTable
32: Dim dt As New DataTable
33: Dim dr As DataRow
34:
35: With dt
36: .Columns.Add( New
DataColumn("ShortName", GetType(String)) )
37: .Columns.Add( New
DataColumn("LongName", GetType(String)) )
38:
39: dr = .NewRow()
40:
dr.Item("ShortName") = "VB.NET"
41:
dr.Item("LongName") = "Visual Basic .NET"
42: .Ro
:::
58: End With
59: Return dt
60: End Function
● SelectionListにDataReaderをバインドするサンプル

図 SelectionListにDataReaderをバインドするサンプル
このサンプルは、SelectionListにDataReaderをバインドして表示しています。SelectionListにDataReaderをバインドするには、DataSourceプロパティにDataReaderのオブジェクトを設定してDataBind()メソッドでバインドします。DataValueField、DataTextFieldプロパティには、DataReaderのLongName、ShortNameのカラムを設定します。
DataReaderは、OleDbCommandのExecuteReader()メソッドで生成します。
● SelectionListにDataSetをバインドするサンプル

図 SelectionListにDataSetをバインドするサンプル
このサンプルは、SelectionListにDataSetをバインドして表示しています。SelectionListにDataSetをバインドするには、DataSourceプロパティにDataSetのオブジェクトを設定してDataBind()メソッドでバインドします。
DataValueField、DataTextFieldプロパティには、DataSetに格納されているDataTable(VsDotNet)のLongName、ShortNameのカラムを設定します。DataSetに複数のDataTableが格納されているときは、SelectionListのDataMemberプロパティにDataTableの名前を設定します。DataTableの名前は、OleDbDataAdapterのFill()メソッドでデータベースのテーブルをDataSetに取り込むときにつけます。
OleDbDataAdapter.Fill(strSQL,”DataTable-Name”)
Note
|
SelectionListのSelectType=LisBox, MultiSelectListBoxをInternet Explorer(IE)上に表示させたときの相違点 SelectionListのSelectTypeプロパティにListBox、MultiSelectListBoxを設定して携帯電話などのMobileデバイスに表示したときは、DropDown、CheckBoxを設定したときと同じように表示されます。HTML3.2をサポートしているInternet Explorer上にSelectionListを表示させると本来のリストボックスとして表示されます。
図 SelectionListのリストボックスをIE 6.0で表示した例 |