Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Christian Wenz tarafından
ASP.NET AJAX Denetim Araç Seti'ndeki DynamicPopulate denetimi bir web hizmetini (veya sayfa yöntemini) çağırır ve sonuçta elde edilen değeri sayfa yenilemesi olmadan sayfadaki hedef denetime doldurur.
Genel Bakış
DynamicPopulate
ASP.NET AJAX Denetim Araç Seti'ndeki denetim bir web hizmetini (veya sayfa yöntemini) çağırır ve sonuçta elde edilen değeri sayfa yenilemesi olmadan sayfadaki bir hedef denetime doldurur. Bu öğreticide bunun nasıl ayarlanacağı gösterilmektedir.
Adımlar
Her şeyden önce, tarafından DynamicPopulate
çağrılmak üzere yöntemini uygulayan bir ASP.NET Web Hizmeti gerekir. Web hizmeti sınıfı içinde Microsoft.Web.Script.Services
tanımlanan özniteliği gerektirirScriptService
; aksi takdirde ASP.NET AJAX, web hizmeti için istemci tarafı JavaScript proxy'sini oluşturamaz ve bu da tarafından DynamicPopulate
gereklidir.
Denetim her web hizmeti çağrısıyla bir bağlam bilgisi gönderdiğinden, web yöntemi dize türünde adlı contextKey
DynamicPopulate
bir bağımsız değişken beklemelidir. Aşağıdaki web hizmeti geçerli tarihi bağımsız değişkeniyle contextKey
temsil edilen biçimde döndürür:
<%@ WebService Language="C#" Class="DynamicPopulate" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[ScriptService]
public class DynamicPopulate : System.Web.Services.WebService
{
[WebMethod]
public string getDate(string contextKey)
{
string myDate = "";
switch (contextKey)
{
case "format1":
myDate = String.Format("{0:MM}-{0:dd}-{0:yyyy}", DateTime.Now);
break;
case "format2":
myDate = String.Format("{0:dd}.{0:MM}.{0:yyyy}", DateTime.Now);
break;
case "format3":
myDate = String.Format("{0:yyyy}/{0:MM}/{0:dd}", DateTime.Now);
break;
}
return myDate;
}
}
Ardından web hizmeti olarak DynamicPopulate.cs.asmx
kaydedilir. Alternatif olarak, yöntemini denetimiyle getDate()
DynamicPopulate
gerçek ASP.NET sayfasında bir sayfa yöntemi olarak uygulayabilirsiniz.
Sonraki adımda yeni bir ASP.NET dosyası oluşturun. Her zaman olduğu gibi, ilk adım ScriptManager
geçerli sayfaya ASP.NET AJAX kitaplığını yüklemek ve Denetim Araç Seti'nin çalışmasını sağlamaktır:
<asp:ScriptManager ID="asm" runat="server" />
Ardından, daha sonra web hizmeti çağrısının sonucunu gösterecek bir etiket denetimi (örneğin, aynı ada sahip HTML denetimini veya <asp:Label
/> web denetimini kullanarak) ekleyin.
<label id="myDate" runat="server" />
Ardından dinamik popülasyonu tetikleme amacıyla bir HTML düğmesi (sunucuya geri gönderme gerektirmediğimiz için HTML denetimi olarak) kullanılır:
<input type="button" id="Button1" runat="server" value="Load date (m-d-y)" />
Son olarak, işleri halletmek DynamicPopulateExtender
için kontrole ihtiyacımız var. Aşağıdaki öznitelikler ayarlanır (belirgin özniteliklerin ID
dışında ve=runat
"server"
):
-
TargetControlID
web hizmeti çağrısından sonucun yerleştirileceği yer -
ServicePath
web hizmetinin yolu (sayfa yöntemi kullanmak istiyorsanız atla) -
ServiceMethod
web yönteminin veya sayfa yönteminin adı -
ContextKey
web hizmetine gönderilecek bağlam bilgileri -
PopulateTriggerControlID
web hizmeti çağrısını tetikleyen öğe -
ClearContentsDuringUpdate
web hizmeti çağrısı sırasında hedef öğenin boşaltılıp boşaltılmayacağı
Gördüğünüz gibi, denetim biraz bilgi gerektirir, ancak her şeyi yerine koymak oldukça kolaydır. Geçerli senaryoda denetimin DynamicPopulateExtender
işaretlemesi aşağıdadır:
<ajaxToolkit:DynamicPopulateExtender ID="dpe1" runat="server"
ClearContentsDuringUpdate="true"
TargetControlID="myDate" ServicePath="DynamicPopulate.cs.asmx"
ServiceMethod="getDate"
ContextKey="format1" PopulateTriggerControlID="Button1" />
tarayıcıda ASP.NET sayfasını çalıştırın ve düğmeye tıklayın; geçerli tarihi ay-gün-yıl biçiminde alırsınız.
Düğmeye tıkladığınızda sunucudaki tarih alınır (Tam boyutlu görüntüyü görüntülemek için tıklayın)