Ekrem
Kategori:Çalışma Notları
| Tarih:
2.02.2019 12:16:20
Bu yazı 1776 defa okundu
Javascript'ten Codebehind Kodunu Çağırma
Konuya uzatmadan, anlatmak istiyorum fakat başlığa kendi kendime takıldım. Gönül istiyordu daha anlaşılır,
Türkçe bir ifade ile başlığı yazayım fakat şu ana kadar öğrendiklerimle bu pek mümkün değil.
Cebren mümkünâtı olsı gözükmekle beraber, problemi yaşayanlara o durum pek yardımcı olabilir
durmadığı için konuya hiç değinmeden, konu ile alakalı olanların anlayabileceği nahif bir ifade ile başlığımı yazdım işte. En kabul edebileceğim şekilde oldu bu başlık.
Benim gibi siz de asp.net ne kodluyorsunuz. Yazıyorsunuz yazıyorsunuz bir bakıyorsunuz,
sunucu taraflı kod işiniz görmüyor. Örnekleri somutlandırmak konuyu böyle daha daha uzatacak, detaylandırmıyorum.
Anlaşılır olması için şöyle ki web sayfamı her 15 saniyede yenilemek istiyorum. Yenilerken de codebehind de kod
çalıştırmak istiyorum. Problemim bu.
İlk çözüm <meta http-equiv="refresh" content="15"> gibi duruyor.bu ne yapıyor
biliyorsunuz, sayfayı yeniliyor. Ben bunu istemiyorum. Bu şekilde sayfa komple sunucuya gidip geliyor.
Bu istediğim bir durum değil. Ajax ile sayfamın belirli bir yerini gönder al yapmak benim amacım.
Detaya adım atalım. Codebehind da yenile() isminde fonksiyonum var. Bunu şu şekilde yazdığımızı varsayıyorum.
protected void yenile()
{/////////}
Akabinde istemciniz tarafına aşağıdaki kodu ekleyin.
<script>
window.setInterval(function () { __doPostBack('yenile', '') }, 15000);
// 15 saniyede 1
</script>
Şimdi bu istemci tarafındaki kodun çalışması için codebehindda da sayfamızın load olayına aşağıdaki
kod bloğunu eklememiz gerektiğini unutmayalım.
ClientScript.GetPostBackEventReference(this, string.Empty);
//Üst satır olmazsa olmazımız
if (Request.Form["__EVENTTARGET"] == "yenile")
{
//call the method
yenile();
}
Bunları yazdıktan sonra mevzu tamamdır. Scriptmanager veya updatePanel konusuna değinmiyorum. Onlar isteğe binaen tercihimdi.
Bu yazımı okuyan herkese iyi kodlamalar diliyorum.