Ajax Web Method ile aspx sayfamızdan csharp tarafına veya tam tersi şekilde sayfa postback olmadan nasıl veri alışverişi yapabiliriz onu inceleyeceğiz.
PageMethod özelliği Asp.Net tarafında, CodeBehind(ArkaKod) içindeki static metotları çağırmamızı sağlayan bir özelliktir.
Önce Ajax Extension kurmalıyız. Buradan indirebilirsiniz.
1-) Ajax Extension kurduktan sonra Visual Studio'nuz açıksa kapatın ve yeniden açın.
2-) File > New > Web Site > ASP.NET AJAX Enabled Web Site
3-) Bu methodu kullanacağınız yerde veya master page'inizin form tagları arasına ScriptManager'ı tanımlıyoruz ve EnablePageMethods ayarını true'ya eşitliyoruz.
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
Artık sayfamız PageMethods'ları kullanmaya hazır, şimdi ufak bir deneme yaparak AJAX'ı hayata geçirelim.
4-)Aspx.cs tarafında hazırlıklara başlayarak devam edelim.
Asenkron haberleşme için [WebMethod] 'u metodumuza uygulamamız ve metodun static olarak işaretlenmesi gerekmektedir.
[System.Web.Services.WebMethod]
public static string HosgeldinYazisiVer(string KullaniciAd)
{
return "Hoşgeldin Sn." + KullaniciAd;
}
5-)Aspx sayfamıza bir javascript ekleyelim.
<script type="text/javascript">
function HosgeldinYazisiCek()
{
// WebMethod'a asenkron çağrıda bulunmak için PageMethods.MetodAdi şeklinde tanımlama yapmamız gerekmektedir.
// Bu işlem bittiğinde Yazdir metodumuzu çalıştırıp donenDeger adlı değişkene csharp tarafından gelen verileri aktarıyoruz.
PageMethods.HosgeldinYazisiVer("Doğuhan Aydeniz", Yazdir);
}
function Yazdir(donenDeger)
{
// cs sayfamızdan dönen veriyi donenDeger adlı bir veriye aktarıyoruz ve bunu alert ettirip ekrana yazdırıyoruz.
alert(donenDeger);
}
</script>
Sonuç şu şekilde olacaktır.