다음을 통해 공유


CascadingDropDown을 사용하여 목록 채우기(C#)

작성자: Christian Wenz

PDF 다운로드

AJAX 컨트롤 도구 키트의 CascadingDropDown 컨트롤은 DropDownList 컨트롤을 확장하여 한 DropDownList의 변경 내용이 연결된 값을 다른 DropDownList에 로드합니다. (instance 경우 한 목록은 미국 주 목록을 제공하고 다음 목록은 해당 주의 주요 도시로 채워집니다.) 해결해야 할 첫 번째 과제는 실제로 이 컨트롤을 사용하여 드롭다운 목록을 채우는 것입니다.

개요

AJAX 컨트롤 도구 키트의 CascadingDropDown 컨트롤은 DropDownList 컨트롤을 확장하여 한 DropDownList의 변경 내용이 연결된 값을 다른 DropDownList에 로드합니다. (instance 경우 한 목록은 미국 주 목록을 제공하고 다음 목록은 해당 주의 주요 도시로 채워집니다.) 해결해야 할 첫 번째 과제는 실제로 이 컨트롤을 사용하여 드롭다운 목록을 채우는 것입니다.

단계

ASP.NET AJAX 및 컨트롤 도구 키트의 기능을 활성화하려면 컨트롤을 ScriptManager 페이지의 아무 곳에나 배치해야 합니다(요소 내 <form> ).

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

그런 다음 DropDownList 컨트롤이 필요합니다.

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

이 목록의 경우 CascadingDropDown extender가 추가됩니다. 비동기 요청을 웹 서비스에 보낸 다음 목록에 표시할 항목 목록을 반환합니다. 이렇게 하려면 다음 CascadingDropDown 특성을 설정해야 합니다.

  • ServicePath: 목록 항목을 제공하는 웹 서비스의 URL
  • ServiceMethod: 목록 항목을 제공하는 웹 메서드
  • TargetControlID: 드롭다운 목록의 ID
  • Category: 호출될 때 웹 메서드에 제출되는 범주 정보
  • PromptText: 서버에서 목록 데이터를 비동기적으로 로드할 때 표시되는 텍스트

다음은 요소에 대한 태그입니다 CascadingDropDown . C# 및 VB 간의 유일한 차이점은 연결된 웹 서비스의 이름입니다.

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

extender에서 CascadingDropDown 제공되는 JavaScript 코드는 다음 서명을 사용하여 웹 서비스 메서드를 호출합니다.

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

따라서 중요한 측면은 메서드가 형식 CascadingDropDownNameValue 의 배열(ASP.NET AJAX 컨트롤 도구 키트로 정의됨)을 반환해야 한다는 것입니다. CascadingDropDownNameValue 생성자에서 먼저 목록 항목의 텍스트를 입력한 다음 HTML에서와 마찬가지로 <option value="VALUE">NAME</option> 해당 값을 제공해야 합니다. 다음은 몇 가지 샘플 데이터입니다.

<%@ WebService Language="C#" Class="CascadingDropdown0" %>
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 CascadingDropdown0 : 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"));
 l.Add(new CascadingDropDownNameValue("Premier Sport, Inc.", "3"));
 return l.ToArray();
 }
}

브라우저에서 페이지를 로드하면 목록이 3개의 공급업체로 채워지도록 트리거됩니다.

목록이 자동으로 채워집니다.

목록이 자동으로 채워집니다(전체 크기 이미지를 보려면 클릭).