Предустановка записей списка с помощью CascadingDropDown (C#)
Элемент управления CascadingDropDown в наборе элементов управления AJAX расширяет элемент управления DropDownList, чтобы изменения в одном DropDownList загружали связанные значения в другом DropDownList. При использовании немного кода возможно, что элемент списка будет предварительно выбран после динамической загрузки данных.
Общие сведения
Элемент управления CascadingDropDown в наборе элементов управления AJAX расширяет элемент управления DropDownList, чтобы изменения в одном DropDownList загружали связанные значения в другом DropDownList. (Например, один список содержит список штатов США, а следующий список заполняется крупными городами в этом штате.) При использовании немного кода возможно, что элемент списка будет предварительно выбран после динамической загрузки данных.
Этапы
Чтобы активировать функциональные возможности ASP.NET AJAX и control Toolkit, 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. Конструктор типа ожидает сначала подпись записи списка, а затем значение (атрибут HTMLvalue
). Если для третьего аргумента задано значение 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();
}
}
При загрузке страницы в браузере в раскрывающемся списке заполнится три поставщика, второй из которых будет предварительно выбран.
Список заполняется и предварительно выбран автоматически (щелкните для просмотра полноразмерного изображения)