Görüntülenme: 14033
JavaScript ile PostBack
2007/06/01 22:25
Bildir! Alıntı ile cevap yaz Oyla! (0 oy)

ASP.NET sayfasında, kullanıcının eylemi dışında "PostBack" işlemi, JavaScript ile yapılabilir.

Bunun için, bir buton kullanılabilir. Şayet butonun görünmesi istenmiyorsa, istemci tarafında gizlenebilir. Sunucu tarafında gizlenmesi durumunda hata oluşmaktadır, zira öyle bir nesne oluşturulmamış oluyor. İstemci tarafında gizlemek için CSS stillerinden yararlanılabilir.

Mesela aşağıdaki örnekte, sayfa yüklendiğinde "btnSend" butonuna basılmaktadır. Bu sırada, "btnSend_Click" yordamı da işlenecektir.

Örnek:

<html>

<head runat="server">
<script language="JavaScript">

function doPost(){
    document.getElementById('btnSend').click();
}

</script>
</head>

<body onload="doPost()">
    <form id="form1" runat="server">
        <asp:Button ID="btnSend" runat="server" style="visibility:hidden;" Text="Gönder" />
    </form>
</body>
</html>

Yararlanılan Kaynak:
http://dotnetjunkies.com/WebLog/leon/archive/2004/08/28/23571.aspx

İngilizce kelime ezberleme oyunu: vav.mbirgin.com

JavaScript ile bir fonksiyon yazdım ve başka yerlerden bu fonsiyonu çağırdım. Ancak, fonksiyona gelen isteğin, hangi nesneden geldiğini öğrenmek için, yeni bir parametre tanımlamak zorunda kaldım.

Daha somut olsun, örnek vereyim.

function Download(pSender, pURL){
  var strHTML=""
  if (pSender!=null){
   var strTitle=pSender.innerText;
   strHTML = "<span id='spnTitle'><b>" + strTitle + "</b></span><br>";
  }

strHTML += "<br><span id='spnDownload'><a href='" + pURL + "'><b>İndir</b></a></span>";
 
  document.getElementById("divWMP").innerHTML=strHTML;
}

Bu fonksiyonu çağıran linklerimiz şöyle olacaktır.

<a href="#" onclick="Download(this, 'http://www.freewebtown.com/m1gin/kisisel/kapi.wma')">Mustafa Birgin - Kapıyı Kim Çaldı?</a><br>
<a href="#" onclick="Download(this, 'http://www.freewebtown.com/m1gin/audio/Miyav_Miyav.mp3')">Mustafa Birgin & Mustafa Kütükçü - Miyav Miyav</a><br>

Görüldüğü gibi, her kullanımda, "this" ibaresini kullanmak durumunda kalıyoruz.
Acaba bunu kullanmadan, fonksiyona istek gönderen nesneyi öğrenebilir miyiz?

Uzun süre araştırdım; belki doğru anahtar kelimeleri kullanmadım, ama olumlu bir sonuç elde edemedim. Zaten o yüzden yukarıdaki yöntemi kullandım.
Ve az önce, tesadüfen (belki tevafuken) bir örneğe rastladım! İçerisinde "event.srcElement" gibi bir bölüme rastladım. Heyecanla, hemen denemeye giriştim.

function Download(function Play(pURL){
  var pSender = event.srcElement;
  var strHTML=""
  if (pSender!=null){
   var strTitle=pSender.innerText;
   strHTML = "<span id='spnTitle'><b>" + strTitle + "</b></span><br>";
  }

strHTML += "<br><span id='spnDownload'><a href='" + pURL + "'><b>İndir</b></a></span>";
 
  document.getElementById("divWMP").innerHTML=strHTML;
 }

Böylece bu fonksiyonu çağırırken, "this" ibaresini kullanmak zorunda olmayacaktım artık!

<a href="#" onclick="Download('http://www.freewebtown.com/m1gin/kisisel/gosteri.wma')">Mustafa Birgin - Gösteri</a><br>
<a href="#" onclick="Download('http://www.freewebtown.com/m1gin/audio/Daniel_Bernoulli.wma')">Mustafa Birgin - Daniel Bernoulli</a><br>

Yaşasın event.srcElement

Tüm olay buydu!
Yararlı olması umuduyla...

İngilizce kelime ezberleme oyunu: vav.mbirgin.com
Abonelik Bilgisi Abonelik
Kullanıcı Adı:
Parola:
Bilgi Hatırlatma Yeni Üyelik
İletişim | Kullanım Şartları | Reklam Bilgileri | Tüm Üyeler | Ne Nasıl Yapılır? | Arama | RSS | Twitter | Facebook | Youtube

Son Üyeler: Gakk, busbus, siyamiaytar, 1234123123123, Siyami,
Son Oturumlar: