Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Кристиан Венц (Christian Wenz)
Элемент управления CascadingDropDown в наборе элементов управления AJAX расширяет элемент управления DropDownList, чтобы изменения в одном DropDownList загружали связанные значения в другой DropDownList. (Например, один список содержит список штатов США, а следующий список заполняется крупными городами в этом штате.) Первой задачей является заполнение раскрывающегося списка с помощью этого элемента управления.
Общие сведения
Элемент управления CascadingDropDown в наборе элементов управления AJAX расширяет элемент управления DropDownList, чтобы изменения в одном DropDownList загружали связанные значения в другой DropDownList. (Например, один список содержит список штатов США, а следующий список заполняется крупными городами в этом штате.) Первой задачей является заполнение раскрывающегося списка с помощью этого элемента управления.
Этапы
Чтобы активировать функциональные возможности ASP.NET AJAX и набора средств управления, ScriptManager элемент управления должен находиться в любом месте страницы (но в элементе <form> ).
<asp:ScriptManager ID="asm" runat="server" />
Затем требуется элемент управления DropDownList:
<div>
Vendor: <asp:DropDownList ID="VendorsList" runat="server" />
</div>
Для этого списка добавляется расширитель CascadingDropDown. Он отправляет асинхронный запрос веб-службе, которая затем возвращает список записей, отображаемых в списке. Для этого необходимо задать следующие атрибуты CascadingDropDown:
-
ServicePath: URL-адрес веб-службы, доставляющего записи списка. -
ServiceMethod: веб-метод доставки записей списка -
TargetControlID: идентификатор раскрывающегося списка. -
Category: сведения о категории, которые передаются в веб-метод при вызове. -
PromptText: текст отображается при асинхронной загрузке данных списка с сервера.
Ниже приведена разметка CascadingDropDown для элемента . Единственное различие между C# и VB заключается в имени связанной веб-службы:
<ajaxToolkit:CascadingDropDown ID="ccd1" runat="server"
ServicePath="CascadingDropdown0.vb.asmx" ServiceMethod="GetVendors"
TargetControlID="VendorsList" Category="Vendor" />
Код JavaScript, поступающий CascadingDropDown из расширителя, вызывает метод веб-службы со следующей сигнатурой:
Public Function MethodNameHere(ByVal knownCategoryValues As String, ByVal category As String) As CascadingDropDownNameValue()
Поэтому важным аспектом является то, что метод должен возвращать массив типа CascadingDropDownNameValue (определенный набором средств управления ASP.NET AJAX). В конструкторе CascadingDropDownNameValue необходимо сначала указать текст элемента списка, а затем его значение, как <option value="VALUE">NAME</option> это делается в HTML. Ниже приведены некоторые примеры данных:
<%@ WebService Language="VB" Class="CascadingDropDown0" %>
Imports System.Web.Script.Services
Imports AjaxControlToolkit
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Collections.Generic
<ScriptService()> _
Public Class CascadingDropDown0
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function GetVendors(ByVal knownCategoryValues As String, ByVal category As String) As CascadingDropDownNameValue()
Dim l As New List(Of CascadingDropDownNameValue)
l.Add(New CascadingDropDownNameValue("International", "1"))
l.Add(New CascadingDropDownNameValue("Electronic Bike Repairs & Supplies","2"))
l.Add(New CascadingDropDownNameValue("Premier Sport, Inc.", "3"))
Return l.ToArray()
End Function
End Class
Загрузка страницы в браузере приведет к заполнению списка тремя поставщиками.
Список заполняется автоматически (щелкните для просмотра полноразмерного изображения)