Bir Denetimi Dinamik Olarak Doldurma (VB)

Hristia WENZ tarafından

Kodu indirin veya PDF 'yi indirin

ASP.NET AJAX denetim araç setinde DynamicPopulate denetimi bir Web hizmetini (veya sayfa yöntemini) çağırır ve ortaya çıkan değeri sayfa yenilemesi olmadan sayfadaki bir hedef denetime doldurur.

Genel bakış

ASP.NET AJAX denetim araç setinde DynamicPopulate denetimi bir Web hizmetini (veya sayfa yöntemini) çağırır ve ortaya çıkan değeri sayfa yenilemesi olmadan sayfadaki bir hedef denetime doldurur. Bu öğreticide nasıl ayarlanacağı gösterilmektedir.

Adımlar

İlk olarak, DynamicPopulatetarafından çağrılacak yöntemi uygulayan bir ASP.NET Web hizmetine ihtiyacınız vardır. Web hizmeti sınıfı, Microsoft.Web.Script.Servicesiçinde tanımlanan ScriptService özniteliğini gerektirir; Aksi takdirde ASP.NET AJAX, Web hizmeti için DynamicPopulateiçin gereken istemci tarafı JavaScript proxy 'sini oluşturamaz.

DynamicPopulate denetimi her bir Web hizmeti çağrısıyla bir bağlam bilgilerini gönderdiğinden, Web yönteminin contextKeydize türünde bir bağımsız değişken beklemesi gerekir. Aşağıdaki Web hizmeti, contextKey bağımsız değişkeni tarafından temsil edilen bir biçimde geçerli tarihi döndürür:

<%@ WebService Language="VB" Class="DynamicPopulate" %>
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Web.Script.Services
<ScriptService()> _
Public Class DynamicPopulate
 Inherits System.Web.Services.WebService
 <WebMethod()> _
 Public Function getDate(ByVal contextKey As String) As String
 Dim myDate As String = ""
 Select Case contextKey
 Case "format1"
 myDate = String.Format("{0:MM}-{0:dd}-{0:yyyy}", DateTime.Now)
 Case "format2"
 myDate = String.Format("{0:dd}.{0:MM}.{0:yyyy}", DateTime.Now)
 Case "format3"
 myDate = String.Format("{0:yyyy}/{0:MM}/{0:dd}", DateTime.Now)
 End Select
 Return myDate
 End Function
End Class

Web hizmeti daha sonra DynamicPopulate.vb.asmxolarak kaydedilir. Alternatif olarak, DynamicPopulate denetimi ile gerçek ASP.NET sayfasında bir sayfa yöntemi olarak getDate() yöntemini uygulayabilirsiniz.

Sonraki adımda yeni bir ASP.NET dosyası oluşturun. Her zaman olduğu gibi ilk adım, ASP.NET AJAX kitaplığı 'nı yüklemek ve Denetim araç takımını çalışır hale getirmek için geçerli sayfaya ScriptManager dahil edilir:

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

Daha sonra Web hizmeti çağrısının sonucunu gösteren bir etiket denetimi (örneğin, aynı adın HTML denetimini veya <asp:Label /> Web denetimi) ekleyin.

<label id="myDate" runat="server" />

Bir HTML düğmesi (bir HTML denetimi olarak, sunucuya geri gönderme gerektirtiğimiz için), dinamik popülasyonu tetiklemek için kullanılır:

<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />

Son olarak, bağlantı kurmak için DynamicPopulateExtender denetimine ihtiyacımız var. Aşağıdaki öznitelikler ayarlanacak (belirgin olanlardan ayrı olarak, ID ve runat="server"):

  • Web hizmeti çağrısından sonucun nereye yerleştirileceğini TargetControlID
  • Web hizmetinin yolunu ServicePath (bir sayfa yöntemi kullanmak istiyorsanız atlayın)
  • Web yönteminin veya sayfa yönteminin ServiceMethod adı
  • Web hizmetine gönderilecek bağlam bilgilerini ContextKey
  • Web hizmeti çağrısını tetikleyen PopulateTriggerControlID öğesi
  • Web hizmeti çağrısı sırasında hedef öğenin boş bırakılıp başlatılmayacağını ClearContentsDuringUpdate

Gördüğünüz gibi, denetim bazı bilgiler gerektirir, ancak her şeyi konuma koymak oldukça basit bir işlemdir. Geçerli senaryoda DynamicPopulateExtender denetimi için biçimlendirme aşağıda verilmiştir:

<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
 ClearContentsDuringUpdate="true"
 TargetControlID="myDate" ServicePath="DynamicPopulate.vb.asmx"
 ServiceMethod="getDate"
 ContextKey="format1" PopulateTriggerControlID="Button1" />

Tarayıcıda ASP.NET sayfasını çalıştırın ve düğmesine tıklayın; geçerli tarihi ay-gün biçiminde alacaksınız.

düğmeye tıklama sunucudan tarihi alır

Düğmeye tıklama, tarihi sunucudan alır (tam boyutlu görüntüyü görüntülemek Için tıklatın)