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

작성자: Christian Wenz

PDF 다운로드

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

개요

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

단계

ASP.NET AJAX 및 Control Toolkit의 기능을 활성화하려면 컨트롤을 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.vb.asmx" ServiceMethod="GetVendors"
 TargetControlID="VendorsList" Category="Vendor" />

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

Public Function MethodNameHere(ByVal knownCategoryValues As String, ByVal category As String) As CascadingDropDownNameValue()

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

<%@ 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

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

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

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