次の方法で共有


List コントロールまたは SelectionList コントロールでのデータ連結

更新 : 2007 年 11 月

List および SelectionList の各 ASP.NET モバイル コントロールでデータの基本的なビューがレンダリングされるため、ユーザーはデータ項目を選択できます。

List モバイル コントロールまたは SelectionList モバイル コントロールは、DataView オブジェクトまたは DataSet オブジェクトにバインドしたり、IEnumerable または IListSource を実装しているオブジェクトにバインドしたりできます。List モバイル コントロールまたは SelectionList モバイル コントロールを DataView オブジェクトにバインドするには、コントロールの DataSource プロパティを設定し、その DataBind メソッドを呼び出します。Titles という名前のテーブルが格納されている DataSet オブジェクトにコントロールをバインドする方法を次のコード例に示します。

myList.DataSource = ds.Tables["Titles"].DefaultView;
myList.DataBind();

または、List コントロールまたは SelectionList コントロールを DataSet オブジェクトにバインドできます。これを行うには、DataMember プロパティにテーブルの名前を設定します。次の例は、上の例と同じ意味になります。

myList.DataSource = ds;
myList.DataMember = "Titles";
myList.DataBind();

List コントロールまたは SelectionList コントロールの一覧項目は、2 つのデータ値にバインドできます。1 つのデータ値は一覧項目の Text プロパティにバインドし、もう 1 つのデータ値は Value プロパティにバインドします。一覧項目のバインドは、List コントロールまたは SelectionList コントロールの DataTextField (SelectionList.DataTextField) プロパティおよび DataValueField (SelectionList.DataValueField) プロパティを設定して構成します。List コントロールは Text プロパティを使用して各項目を表示します。たとえば、各項目の CustomerName プロパティを使用して項目を表示する場合は、DataTextField プロパティを CustomerName に設定します。

いくつかのデータ値で構成される要約として、各項目を表示する場合があります。この場合は、List コントロールの ItemDataBind イベントまたは SelectionList コントロールの ItemDataBind イベントを処理し、プログラムで Text プロパティを設定します。以下のコード例は、書名と価格を組み合わせて書籍情報をレンダリングする方法を示します。

private void List_OnItemDataBind(object sender, 
    ListDataBindEventArgs e)
{
    e.ListItem.Text = String.Format ("{0} – {1}", 
        DataBinder.Eval (e.DataItem, "title"),
        DataBinder.Eval (e.DataItem, "price", "{0:C}"));
}

豊富なレンダリング機能をサポートするデバイスでは、List コントロールのテンプレート セットを使用して、データ項目のカスタマイズされたビューを表示できます。テンプレート モードでの List コントロールの機能は、Repeater ASP.NET サーバー コントロールと似ています。たとえば、以下の項目テンプレートを使用して書籍の詳細ビューを表示することができます。

<ItemTemplate>
  <tr style="background-color:FFECD8">
    <td>
      <%# DataBinder.Eval(((MobileListItem)Container).DataItem, _
        "title") %>
    </td>
    <td>
      <%# DataBinder.Eval(((MobileListItem)Container).DataItem, _
        "title_id") %>
    </td>
    <td>
      <%# DataBinder.Eval(((MobileListItem)Container).DataItem, _
        "type") %>
    </td>
    <td>
      <%# DataBinder.Eval(((MobileListItem)Container).DataItem, _
        "pub_id") %>
    </td>
    <td>
      <%# DataBinder.Eval(((MobileListItem)Container).DataItem, _
        "price", "{0}", "{0:C}") %>
    </td>
  </tr>
</ ItemTemplate >

テンプレート セットの詳細については、「テンプレート セットとテンプレート コントロール」を参照してください。

参照

概念

リスト コントロールによるデータへのアクセス

SelectionList クラスと List クラスとの相違点