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)

 

このサンプルは、SelectionListSelectTypeプロパティにRadioを設定してアイテムをラジオボタンで表示しています。SelectionListは、単独でフォームをポストバックさせることができないので通常Commandコントロールと併用して使用します。ラジオボタンからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandOnClickイベントに制御が渡ります。

 

OnClickイベントでは、SelectionListSelectionプロパティからTextプロパティの値を取得して表示しています。Selectionプロパティには、ラジオボタンから選択したアイテム(MobileListItem)が格納されています。アイテムのText/Valueを取得するには、MobileListItemText/Valueプロパティを参照します。

 

SelectionList.Selection.Text è C#.NET

SelectionList.Selection.Value è Visual C# .NET

 

 

  SelectionListにアイテムをチェックボックス形式で表示するサンプル(CheckBox)

 

SelectionListにアイテムをチェックボックス形式で表示するサンプル(CheckBox)

 

このサンプルは、SelectionListSelectTypeプロパティにCheckBoxを設定してアイテムをチェックボックスで表示しています。チェックボックスからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandOnClickイベントに制御が渡ります。チェックボックスからは、複数のアイテムを選択することができます。

 

OnClickイベントでは、SelectionListItemsコレクションからMobileListItemを取り出してSelectedプロパティを調べています。アイテムが選択されているときは、TextViewTextプロパティにアイテムのValue/Textの値を設定して表示します。

 

 

  SelectionListにアイテムをドロップダウンリスト形式で表示するサンプル(DropDown)

 

SelectionListにアイテムをドロップダウンリスト形式で表示するサンプル(DropDown)

 

このサンプルは、SelectionListSelectTypeプロパティにDropDownを設定してアイテムをドロップダウンリストに表示しています。ドロップダウンリストからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandOnClickイベントに制御が渡ります。

 

OnClickイベントでは、SelectionListSelectionプロパティからTextプロパティの値を取得して表示しています。

 

 

  SelectionListにアイテムをリストボックス形式で表示するサンプル(ListBox)

 

SelectionListにアイテムをリストボックス形式で表示するサンプル(ListBox)

 

このサンプルは、SelectionListSelectTypeプロパティにListBoxを設定してアイテムをリストボックスに表示しています。Mobileのデバイスによっては、サンプルのようにドロップダウンリストと同じように表示されます。

 

リストボックスからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandOnClickイベントに制御が渡ります。

 

OnClickイベントでは、SelectionListSelectionプロパティからTextプロパティの値を取得して表示しています。

 

 

  SelectionListに複数アイテム選択可能なリストボックスを表示するサンプル(MultiSelectListBox)

 

SelectionListに複数アイテム選択可能なリストボックスを表示するサンプル(MultiSelectListBox)

 

このサンプルは、SelectionListSelectTypeプロパティにMultiSelectListBoxを設定してアイテムをリストボックスに表示しています。Mobileのデバイスによっては、サンプルのようにチェックボックスと同じよう表示されます。

 

リストボックスからアイテムを選択してOKボタンを押すと、フォームがポストバックされてCommandOnClickイベントに制御が渡ります。

 

OnClickイベントでは、SelectionListItemsコレクションから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

 

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

 

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

 

このサンプルは、SelectionListArrayListをバインドして表示しています。ArrayListには、VisualStudioのオブジェクトを格納しています。VisualStudioクラスには、LongNameShortNameプロパティがあります。SelectionListArrayListをバインドするには、DataSourceプロパティにArrayListのオブジェクトを設定してDataBind()メソッドでバインドします。DataTextFieldDataValueFieldプロパティには、VisualStudioShortNameLongNameプロパティを設定します。

 

  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

 

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

 

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

 

このサンプルは、SelectionListDataTableをバインドして表示しています。SelectionListDataTableをバインドするには、DataSourceプロパティにDataTableのオブジェクトを設定してDataBind()メソッドでバインドします。DataTextFieldDataValueFieldプロパティには、DataTableShortNameLongNameのカラムを設定します。DataTableは、CreateDataTable()関数を呼び出して生成します。

 

CreateDataTable()関数の行32では、DataTableを生成しています。行36-37では、DataTableShortNameLongNameのカラムを追加しています。行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:     .Rows.Add(dr)
         :::
 58:   End With
 59:   Return dt
 60: End Function

 

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

 

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

 

このサンプルは、SelectionListDataReaderをバインドして表示しています。SelectionListDataReaderをバインドするには、DataSourceプロパティにDataReaderのオブジェクトを設定してDataBind()メソッドでバインドします。DataValueFieldDataTextFieldプロパティには、DataReaderLongNameShortNameのカラムを設定します。

 

DataReaderは、OleDbCommandExecuteReader()メソッドで生成します。

 

 

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

 

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

 

このサンプルは、SelectionListDataSetをバインドして表示しています。SelectionListDataSetをバインドするには、DataSourceプロパティにDataSetのオブジェクトを設定してDataBind()メソッドでバインドします。

 

DataValueFieldDataTextFieldプロパティには、DataSetに格納されているDataTable(VsDotNet)LongNameShortNameのカラムを設定します。DataSetに複数のDataTableが格納されているときは、SelectionListDataMemberプロパティにDataTableの名前を設定します。DataTableの名前は、OleDbDataAdapterFill()メソッドでデータベースのテーブルをDataSetに取り込むときにつけます。

 

OleDbDataAdapter.Fill(strSQL,”DataTable-Name”)

 

Note

SelectionListSelectType=LisBox, MultiSelectListBoxInternet Explorer(IE)上に表示させたときの相違点

 

SelectionListSelectTypeプロパティにListBoxMultiSelectListBoxを設定して携帯電話などのMobileデバイスに表示したときは、DropDownCheckBoxを設定したときと同じように表示されます。HTML3.2をサポートしているInternet Explorer上にSelectionListを表示させると本来のリストボックスとして表示されます。

 

SelectionListのリストボックスをIE 6.0で表示した例