CascadingDropDown Kullanarak Liste Doldurma (VB)

Christian Wenz tarafından

PDF’yi İndir

AJAX Denetim Araç Seti'ndeki CascadingDropDown denetimi, DropDownList denetimini genişleterek bir DropDownList'teki değişikliklerin ilişkili değerleri başka bir DropDownList'e yüklemesini sağlar. (Örneğin, bir liste ABD eyaletlerinin listesini sağlar ve bir sonraki liste de bu eyaletteki büyük şehirlerle doldurulur.) Çözmenin ilk zorluğu, bu denetimi kullanarak bir açılan listeyi doldurmaktır.

Genel Bakış

AJAX Denetim Araç Seti'ndeki CascadingDropDown denetimi, DropDownList denetimini genişleterek bir DropDownList'teki değişikliklerin ilişkili değerleri başka bir DropDownList'e yüklemesini sağlar. (Örneğin, bir liste ABD eyaletlerinin listesini sağlar ve bir sonraki liste de bu eyaletteki büyük şehirlerle doldurulur.) Çözmenin ilk zorluğu, bu denetimi kullanarak bir açılan listeyi doldurmaktır.

Adımlar

ASP.NET AJAX ve Denetim Araç Seti'nin işlevselliğini etkinleştirmek için, ScriptManager denetim sayfanın herhangi bir yerine (ancak öğesinin <form> içine) yerleştirilmelidir:

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

Ardından DropDownList denetimi gerekir:

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

Bu liste için CascadingDropDown genişleticisi eklenir. Bir web hizmetine zaman uyumsuz istek gönderir ve ardından listede görüntülenecek girdilerin listesini döndürür. Bunun çalışması için aşağıdaki CascadingDropDown özniteliklerinin ayarlanması gerekir:

  • ServicePath: Liste girdilerini teslim eden bir web hizmetinin URL'si
  • ServiceMethod: Liste girdilerini teslim eden web yöntemi
  • TargetControlID: Açılan listenin kimliği
  • Category: Çağrıldığında web yöntemine gönderilen kategori bilgileri
  • PromptText: Liste verileri sunucudan zaman uyumsuz olarak yüklenirken görüntülenen metin

Öğenin işaretlemesi aşağıdadır CascadingDropDown . C# ile VB arasındaki tek fark, ilişkili web hizmetinin adıdır:

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

Genişleticiden CascadingDropDown gelen JavaScript kodu aşağıdaki imzaya sahip bir web hizmeti yöntemini çağırır:

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

Bu nedenle önemli olan, yöntemin bir tür CascadingDropDownNameValue dizisi döndürmesi gerektiğidir (ASP.NET AJAX Denetim Araç Seti tarafından tanımlanır). Oluşturucuda CascadingDropDownNameValue , önce liste girdisinin metni ve ardından değeri, HTML'de olduğu gibi <option value="VALUE">NAME</option> sağlanmalıdır. Aşağıda bazı örnek veriler verilmiştir:

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

Sayfanın tarayıcıda yüklenmesi, listenin üç satıcıyla doldurulması için tetiklenir.

Liste otomatik olarak doldurulur

Liste otomatik olarak doldurulur (Tam boyutlu görüntüyü görüntülemek için tıklayın)