Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Mustafa Erhan Ersoy
Mustafa Erhan Ersoy
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
14 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: attribute dinamik eklenmesi fonksiyon javascript kodunu kontrole metodu pencere pencerenin sayfanin sayfaya script scripti uygulamalari ASP.NET Mustafa Erhan Ersoy
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : ASP.NET
Yayınlanma Tarihi : 2.9.2004
Okunma Sayısı : 80740
Yorum Sayısı : 4     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 24.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 24.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 24.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 24.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
ASP.NET Sayfalarına Dinamik Olarak JavaScript Kodu Eklemek
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Merhaba, ilk ASP,NET makalemin konusu JavaScript fonksiyon ve kod parçacıklarının sayfaya sunucu tarafında eklenmesi.

Makale İçeriği :

  • JavaScript’in web uygulamaları için önemi.
  • Örnek olarak kullanacağımız PopUp pencere JavaScript kodları.
  • Yöntem 1 . Bir Web Kontrole dinamik olarak attribute eklemek.
  • Yöntem 2 . Page.RegisterStartupScript metodu ile sayfaya başlangıç scripti eklemek.
  • Yöntem 3 . Page.RegisterClientScriptBlock metodu ile sayfaya script bloğu eklemek.
  • Sonuç

JavaScript’in web uygulamaları için önemi

JavaScript’in en büyük avantajı sunucuya yapılan isteklerin (PostBack) azaltılarak network trafiğini azaltmak dolayısıyla daha hızlı web uygulamaları geliştirmektir. Dinamik web sayfaları tasarlamak ve kullanıcıya, server’a gitmeksizin cevap verebilmektir. Kullanıcıyı doğru veri girmeye zorlayarak sunucuya düşen görevi hafifletmek. (Validation)

Örnek olarak kullanacağımız PopUp pencere JavaScript kodları

Örneğimizde, sık olarak kullanılan popup pencere JavaScript kodunu kullanacağız : window.open(’http://www.csharpnedir.com/’,’anycontent’, ’width=800, height=600 ,scrollbars=1’);

JavaScript ile kullanıcının sayfa içerisinde gezerken yaptığı yaptığı olaylara karşı form kontrollerinin OnClick, OnFocus, OnBlur, OnMouseOver gibi olayları otomatik olarak çağrılır. Yapmamız gereken uygun olaya uygun JavaScript kodunu eklemektir. <input type="button" onclick="javascript:window.open(’http://www.csharpnedir.com/’,’anycontent’, ’width=800, height=600 ,scrollbars=1’);">

Yukarıdaki buton’a bastığımızda bir popup sayfası açacaktır.

Yöntem 1 . Bir Web Kontrole dinamik olarak attribute eklemek

Öncelikle VS.NET’te bir C# ile ASP.NET Web Uygulaması açalım. Sayfamıza aşağıdaki resimdeki gibi üç adet buton koyalım.



Sayfamızın HTML body tag’i basitçe :

<body>
   <form id="Form1" method="post" runat="server">
      <table ID="Table1">
         <tr>
               <td colSpan="2">
                  <h2>.NET ve JavaScript</h2>
               </td>
         </tr>
         <tr>
               <td>Javascript Örnek 1 :</td>
               <td><asp:button id="btnScript1" runat="server" Text="Örnek 1"></asp:button></td>
         </tr>
         <tr>
               <td>Javascript Örnek 2 :</td>
               <td><asp:button id="btnScript2" runat="server" Text="Örnek 2"></asp:button></td>
         </tr>
         <tr>
               <td>Javascript Örnek 3 :</td>
               <td><asp:button id="btnScript3" runat="server" Text="Örnek 3"></asp:button></td>
         </tr>
         <tr>
               <td align="center" colSpan="2"><a style="COLOR: red" name="ancLabel"></a></td>
         </tr>
      </table>
   </form>
</body>

Şeklinde olmalı. Şimdi sunucu tarafında hazırladığımız JavaScript kodunu sayfanın Page_Load olayında belirlediğimiz bir kontrole (btnScript1) ekleyelim.

private void addAttributeToControl(WebControl control) {
   string strScript = "javascript:";
   // Açacağımız popup sayfa scripti :
   strScript += "window.open(’http://www.csharpnedir.com/ ";
   strScript += "’,’anycontent’,";
   // PopUp pencerenin özellikleri :
   strScript += "’width=800"; // Genişlik
   strScript += ",height=600"; // Yükseklik
   strScript += ",scrollbars=1"; // Scrollbar
   strScript += "’);";
   // Bir kontrolün attributes kolleksiyonuna javascript eklenmesi :
   control.Attributes.Add("onclick", strScript);
}

private void Page_Load(object sender, System.EventArgs e) {    // Attribute olarak Javascript’in kontrole eklenmesi :
   this.addAttributeToControl(this.btnScript1);
}
ASP.NET web kontrollerinin attributes kolleksiyonu ile her browser’ın desteklediği her attribute kontrole eklenebilir. Şimdi projeyi derledikten sonra sayfayı çağıralım ve sayfanın kaynak koduna bakalım.

<input type="submit" name="btnScript1" value="Örnek 1" id="btnScript1" onclick="javascript:window.open(’http://www.csharpnedir.com/ ’,’anycontent’,’width=800,height=600,scrollbars=1’);" />

şeklinde olacaktır.

Yöntem 2 . Page.RegisterStartupScript metodu ile sayfaya başlangıç scripti eklemek

Page nesnesinin RegisterStartupScript metodu, sayfaya başlangıç scripti eklememizi sağlar. Dolayısıyla ekleyeceğimiz script sayfa browser’da açılırken çalışacaktır. Dikkat edilmesi gereken husus, script sayfanın en sonuna eklenir. Yani sayfanın tamamı geldikten sonra browser tarafından çalıştırılır.

Şimdi ikinci butonumuzun click olayına aşağıdaki kodu ekleyelim :

private void btnScript2_Click(object sender, System.EventArgs e) {
   // DİKKAT :
   // StartUpScript olarak sayfaya kaydedildiği için sayfanın her yenilenişinde bu script çalışacaktır.
   // Ayrıca bu script hep postback ile çalışacaktır.
   string strScript="";
   // Scriptin daha önce eklenip eklenmediğini kontrol ediyoruz :
   if(!this.IsStartupScriptRegistered("Baslangic"))
   {
      // Javascript’imizi oluşturuyoruz :
      strScript = "<script language=’JavaScript’>";
      // Açacağımız popup sayfa scripti :
      strScript += "window.open(’http://www.csharpnedir.com/ ";
      strScript += "’,’anycontent’,";
      // PopUp pencerenin özellikleri :
      strScript += "’width=800"; // Genişlik
      strScript += ",height=600"; // Yükseklik
      strScript += ",scrollbars=1"; // Scrollbar
      strScript += "’);";
      strScript += "</script>";
      // Oluşturduğumuz script’in başlangıç script’i olarak sayfaya eklenmesi :
      this.RegisterStartupScript("Baslangic", strScript);
   }
}

Şimdi sayfayı browser’da açtıktan sonra Örnek 2 butonuna basarsak sayfa server’a gidip gelecek ve popup açacaktır. İlk postback’ten sonra sayfanın kaynak koduna bakarsanız, oluşturduğumuz JavaScript kodunu görebilirsiniz.

Yöntem 3 . Page.RegisterClientScriptBlock metodu ile sayfaya script bloğu eklemek

Page nesnesinin RegisterClientScriptBlock metodu, sayfaya script bloğu yani Javascript fonksiyonu eklememizi sağlar. RegisterStartupScript’dan farklı olarak yazılan fonksiyon sayfanın başında body HTML taginin hemen altına eklenir.

private void addBlockToPage()
{
   string strScript = "<script language=’JavaScript’>";
   // DİKKAT : fonksiyon olarak tanımlıyoruz.
   strScript += "function popUpWindow()";
   strScript += "{";
   // Açacağımız popup sayfa scripti :
   strScript += "window.open(’http://www.csharpnedir.com/ ";
   strScript += "’,’anycontent’,";
   // PopUp pencerenin özellikleri :
   strScript += "’width=800"; // Genişlik
   strScript += ",height=600"; // Yükseklik
   strScript += ",scrollbars=1"; // Scrollbar
   strScript += "’);";
   // Kullanıcı taraflı Programlamanın daha iyi anlaşılabilmesi için formu göndermeyeceğiz :
   strScript += "return false;";
   strScript += "}";
   strScript += "</script>";
   // Scriptin daha önce eklenip eklenmediğini kontrol ediyoruz :
   if(!this.IsClientScriptBlockRegistered("ScriptBlok"))
   {
      // Oluşturduğumuz script’in, script blok olarak sayfaya eklenmesi :
      this.RegisterClientScriptBlock("ScriptBlok", strScript);
      // Fonksiyon olarak tanımladığımız javascript’i butonun click olayına ekliyoruz :
      this.btnScript3.Attributes.Add("onclick", "javascript:return popUpWindow();");
   }
}

private void Page_Load(object sender, System.EventArgs e)
{
   // Script bloğu olarak Javascriptin sayfaya eklenmesi :
   this.addBlockToPage();
}

Sonuç

Bu makalemde hazırladığımız kullanıcı taraflı JavaScript kodlarının .aspx sayfasına dinamik olarak eklenmesi üzerinde durduk. Kullanılan örneklerin yeraldığı projeyi indirmek için tıklayın. İleriki makalelerimde bu yöntemleri kullanarak custom control tasarımı yapacağız.
Makale:
ASP.NET Sayfalarına Dinamik Olarak JavaScript Kodu Eklemek ASP.NET Mustafa Erhan Ersoy
  • Yazılan Yorumlar
  • Yorum Yaz
ARA
30
2009
Hocam merhaba Makalenizi okudum. Oldukçada işime yaradı. Fakat şöyle bir durum var. Page.RegisterClientScriptBlock metodu ile sayfaya script bloğu eklemek metoduyla işimi görüyorum. Fakat bu metodda butona load da görev verildiği için başka iş yaptıramıyorum. Mesela textbox da var olan bir veriyi session a atmak, sonra popup da açtığım bir sayfada sessiondaki değere göre işlem yaptırmak istiyorum. Bir fikriniz var mı bu konuda. Şimdiden çok teşekkür ederim.
ARA
10
2006
Sayfaya değilde bir js dosyasına scriptleri yazmak isterseniz, System.IO altındaki File sınıfı yardımı ile klasik dosya işlemleri yapmalısınız. ASP.NET 1.1 in desteklediği tüm client script yardımcı metodları Page sınıfının üyesidir. Dolayısıyla scriptleri sayfaya yazmayı destekler.
ARA
7
2006
Teşkkürler Benim bir sorum oalcak bunu .Aspx sayfasına değilde .js dosyasına yazmak istesek nasıl yapacagız. Veya Onlie .js dosyasını nasıl oluşturacagız... İyi çalışmalar.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor