Sdílet prostřednictvím


Předvedení položek seznamu ovládacím prvkem CascadingDropDown (C#)

Christian Wenz

Stáhnout PDF

Ovládací prvek CascadingDropDown v sadě nástrojů AJAX Control Toolkit rozšiřuje ovládací prvek DropDownList tak, aby změny v jednom rozevíracím seznamu načítá přidružené hodnoty v jiném rozevíracím seznamu. S trochou kódu je možné, že prvek list je předem vybrán, jakmile jsou data dynamicky načtena.

Přehled

Ovládací prvek CascadingDropDown v sadě nástrojů AJAX Control Toolkit rozšiřuje ovládací prvek DropDownList tak, aby změny v jednom rozevíracím seznamu načítá přidružené hodnoty v jiném rozevíracím seznamu. (Například jeden seznam obsahuje seznam států USA a další seznam se pak vyplní hlavními městy v tomto státě.) S trochou kódu je možné, že prvek list je předem vybrán, jakmile jsou data dynamicky načtena.

Postup

Aby bylo možné aktivovat funkce ASP.NET AJAX a Control Toolkit, ScriptManager musí být ovládací prvek umístěn kdekoli na stránce (ale v rámci elementu <form> ):

<asp:ScriptManager ID="asm" runat="server" />

Pak se vyžaduje ovládací prvek DropDownList:

<div>
 Vendor: <asp:DropDownList ID="VendorsList" runat="server"/>
</div>

Pro tento seznam je přidán extender CascadingDropDown, který poskytuje adresu URL webové služby a informace o metodě:

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

Extender CascadingDropDown pak asynchronně volá webovou službu s následujícím podpisem metody:

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

Metoda vrátí pole typu CascadingDropDown hodnoty. Konstruktor typu očekává nejprve popis položky seznamu a pak hodnotu (atribut HTMLvalue). Pokud je třetí argument nastavený na hodnotu true, element list se automaticky vybere v prohlížeči.

<%@ 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();
 }
}

Načtením stránky v prohlížeči vyplníte rozevírací seznam třemi dodavateli, přičemž druhý z nich bude předem vybrán.

Seznam se vyplní a předvybere automaticky.

Seznam se vyplní a automaticky předem vyvolí (kliknutím zobrazíte obrázek v plné velikosti).