|  | 
        
            | 
                    
                        | ASP.NET Sayfalarına Dinamik Olarak JavaScript Kodu Eklemek |  |  
                        | 
	
    
		
            | Gönderiliyor lütfen bekleyin... | 
 |  | 
        
            | 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 önemiJavaScript’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.
 
 
 
  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. 
    | 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);
 }
 |  
 <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 eklemekPage 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
 | 
        
            |  | 
        
            |  | 
        
            | 
                    
                        
                            
                        
                            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
                         | 
        
            |  |