方法 : ユーザーが DataList Web サーバー コントロール内の項目を選択できるようにする
更新 : 2007 年 11 月
ユーザーが DataList Web サーバー コントロールの各項目を選択できるように指定できます。通常は、項目を選択するとその項目が強調表示されます。さらに、選択した項目に対して別の情報を表示することもできます。
ユーザーが DataList コントロールの項目を選択できるようにするには
SelectedItemTemplate を作成し、選択した項目のマークアップとコントロールのレイアウトを定義します。詳細については、「ASP.NET Web サーバー コントロール テンプレート」を参照してください。
コントロールの SelectedItemStyle プロパティを設定します。詳細については、「ASP.NET Web サーバー コントロールと CSS スタイル」を参照してください。
ItemTemplate (および使用している場合は AlternatingItemTemplate) で、Button Web サーバー コントロールまたは LinkButton Web サーバー コントロールを追加します。
手順 3. で追加したボタンの CommandName プロパティに、select (大文字と小文字を区別) を設定します。
DataList コントロールの SelectedIndexChanged イベントのイベント ハンドラを作成します。イベント ハンドラでコントロールの DataBind メソッドを呼び出して、コントロールの情報を更新します。コード全体は次のようになります。
Protected Sub DataList1_SelectedIndexChanged(ByVal sender As _ System.Object, ByVal e As System.EventArgs) _ Handles DataList1.SelectedIndexChanged DataList1.DataBind() End Sub
protected void DataList1_SelectedIndexChanged (object sender, System.EventArgs e) { DataList1.DataBind(); }
選択をキャンセルするには、コントロールの SelectedIndex プロパティに -1 を設定します。この設定を行うには、Button Web サーバー コントロールを SelectedItem テンプレートに追加し、その CommandName プロパティに "unselect" を設定します。このボタンの Click イベントも、DataGrid コントロールの ItemCommand イベントに転送されます。
コード全体は次のようになります。
Protected Sub DataList1_ItemCommand(ByVal source As Object, _
ByVal e As DataListCommandEventArgs) _
Handles DataList1.ItemCommand
If e.CommandName = "unselect" Then
DataList1.SelectedIndex = -1
End If
DataList1.DataBind()
End Sub