2012-01-29 30 views
12

C# ASP.NET'te düğme tıklatma olayında yeni tarayıcı penceresi nasıl açılır?Düğme tıklatma etkinliğinde yeni tarayıcı penceresi nasıl açılır?

Lütfen herhangi bir örneği paylaşın.

Aşağıdaki kodu yapıyorum. Lütfen nerede yanlış gittiğimi bana bildirin. Ben javascript fonksiyonu Uyarısı eserlerden kod çalıştırmasına ancak yeni pencere açtı almıyor zaman

btn_Click() 
{ 
    if(condition==true) 
    { 
     this.Page.ClientScript.RegisterStartupScript(
      this.GetType(), 
      "page_index_script2", 
      "openNewWindow();", 
      true 
     ); 
    } 
} 

Ve JavaScript işlevi

function openNewWindow() 
{ 
    alert('HI'); 
    window.open('http://www.stackoverflow.com'); 
} 

olduğunu.

+0

yeni pencere açılacak istiyorum ihtiyacınıza göre bir yükseklik ve genişliğini ayarlayabilirsiniz Olayı kod üzerinde işlemeye başlamadan veya yeni bir pencerede bir bağlantıya geçmeden önce? – ivowiblo

+1

Lütfen başlıklarınızın sonuna "C# ASP.NET" gibi şeyler eklemeyin. Etiketler bunun için var. –

cevap

16

, sen

protected void button_Click(object sender, EventArgs e) 
    { 
     // open a pop up window at the center of the page. 
     ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open('your_page.aspx', null, 'height=700,width=760,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'');", true); 
    } 
+0

Bu popup komut dosyasının sayfaya geri döndüğünde kaçmasını nasıl engellersiniz? –

+0

@JamesWierzba URL yönlendireni veya benzeri bir şey kontrol edemiyor musunuz? Bence işe yaramalı. – DotNetUser

2

Response.Write ('bir pencere açar ... javascript ...') O OnClientClick[MSDN] olayı kullanarak istemci tarafında tüm yapılabilir

http://www.aspspider.com/qa/Question2714.aspx

+2

Yan not: Bu kod, bir tarayıcıda "popup blocker" kontrollerine karşı çalışır ve normalde no-op ile sonuçlanır (yanıtlandığında 2008'de çalışmış olabilir). –

+0

Evet, tabii ki, açılır pencere ile uğraşırken gerçek tarayıcı özellikleri hakkında her zaman endişelenmeliyiz. – Kristian

+0

cevabındaki bağlantı bozuk – ihimv

10

işleyici ve window.open[MDN]:

<asp:Button 
    runat="server" 
    OnClientClick="window.open('http://www.stackoverflow.com'); return false;"> 
    Open a new window! 
</asp:Button> 
+0

Tüm arka uç modunu denedim ama bu en kolaydı. Code-Behind'de, gerekli kontrolleri yapıp URL'yi oluşturup daha sonra OnClientClick'e bu şekilde bağlayın - btnButton.OnClientClick = "window.open ('" + customURL + "'); false; ; Bu hem Düğmeler hem de LinkButtons için çalışır (benim durumumda). – SollyM

+0

Bu mükemmeldi. –

2

Veya tepki akışına yazmak: Bu gibi bazı kod kullanabilirsiniz

Response.Write("<script>"); 
Response.Write("window.open('page.html','_blank')"); 
Response.Write("</script>"); 
İlgili konular