Практическое руководство. Выбор пользователями элементов в серверном веб-элементе управления DataList
Обновлен: Ноябрь 2007
Можно разрешить выбор пользователями отдельных элементов в серверном веб-элементе управления DataList. Выбранный элемент обычно выделяется. Кроме того, можно отобразить различные сведения о выделенном элементе.
Выбор пользователями элементов в серверном веб-элементе управления DataList
Установите свойство SelectedItemTemplate, определяющее разметку и элементы управления для выбранного элемента. Дополнительные сведения см. в разделе Шаблоны серверных веб-элементов управления ASP.NET.
Установите свойства SelectedItemStyle элемента управления. Дополнительные сведения см. в разделе Серверные веб-элементы управления ASP.NET и стили CSS.
В элемент ItemTemplate (и AlternatingItemTemplate, если он используется) добавьте серверный веб-элемент управления Button или LinkButton.
Присвойте свойству CommandName кнопки, которая добавлена на шаге 3, значение select (регистр знаков учитывается).
Создайте обработчик для события SelectedIndexChanged элемента управления DataList. В обработчике событий определите вызов метода 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 к шаблону SelectedItem и присвоить его свойству CommandName значение «unselect». Событие Click этой кнопки также перенаправляется в событие ItemCommand элемента управления DataGrid.
Полный код может выглядеть следующим образом:
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