Предустановка элементов списка с помощью CascadingDropDown (C#)

Кристиан Венц

Скачать в формате PDF

Элемент управления CascadingDropDown в AJAX Control Toolkit расширяет элемент управления DropDownList, так что изменения в одном DropDownList загружают соответствующие значения в другом DropDownList. С небольшим количеством кода возможно, что элемент списка предварительно выбирается после динамической загрузки данных.

Обзор

Элемент управления CascadingDropDown в AJAX Control Toolkit расширяет элемент управления 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, предоставляющий СВЕДЕНИЯ о URL-адресе и методе веб-службы:

<ajaxToolkit:CascadingDropDown ID="ccd1" runat="server"
 ServicePath="CascadingDropdown2.cs.asmx" ServiceMethod="GetVendors"
 TargetControlID="VendorsList" Category="Vendor" />

Затем расширитель CascadingDropDown асинхронно вызывает веб-службу со следующей сигнатурой метода:

public CascadingDropDownNameValue[] MethodNameHere(string knownCategoryValues, string category)

Метод возвращает массив значения типа CascadingDropDown. Конструктор типа ожидает сначала заголовок записи списка, а затем значение (атрибут HTML value ). Если для третьего аргумента задано значение true, элемент списка автоматически выбирается в браузере.

<%@ WebService Language="C#" Class="CascadingDropdown2" %>
using System.Web.Script.Services;
using AjaxControlToolkit;
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
[ScriptService]
public class CascadingDropdown2 : System.Web.Services.WebService
{
 [WebMethod]
 public CascadingDropDownNameValue[] GetVendors(string knownCategoryValues, string
 category)
 {
 List<CascadingDropDownNameValue> l = new List<CascadingDropDownNameValue>();
 l.Add(new CascadingDropDownNameValue(
 "International", "1"));
 l.Add(new CascadingDropDownNameValue(
 "Electronic Bike Repairs & Supplies", "2", true));
 l.Add(new CascadingDropDownNameValue(
 "Premier Sport, Inc.", "3"));
 return l.ToArray();
 }
}

Загрузка страницы в браузере заполняет раскрывающийся список тремя поставщиками, причем второй из них выбран по умолчанию.

Список заполняется и автоматически выбирается

Список заполняется и выбирается автоматически (щелкните, чтобы просмотреть изображение полного размера)