2013-07-12 1 views
5

Ich versuche, eine Datei in neue Registerkarte auf klicken Sie auf eine Link-Schaltfläche in Gridview mit ScriptManager.RegisterStartupScript im Update-Panel öffnen, aber es nicht Arbeiten. Der Kodex ist als unten:RegisterStartupScript funktioniert nicht in einem Update-Panel zum Öffnen von Datei in der neuen Registerkarte in asp.net

 filename = Server.UrlEncode(filename);   
     string js = "<script>window.open('ViewReports.aspx?filename=" + Server.UrlEncode(filename) + "', '_newtab');</script>";   
     ScriptManager.RegisterStartupScript(UpdatePanel1,UpdatePanel1.GetType(),"Pop up",js,true); 

Dies auch nicht funktioniert:

 ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(), js, true); 

Und wenn ich unten Code außerhalb Update-Panel verwenden es funktioniert:

  Type cstype = this.GetType(); 

     ClientScriptManager cs = Page.ClientScript; 
     cs.RegisterStartupScript(cstype, "dateSrpt", "<script>window.open('ViewReports.aspx?filename=" + Server.UrlEncode(filename) + "', '_newtab');</script>"); 
+0

Welches Ereignis haben Sie den registerStartupscript() Codeblock hinzugefügt? Bitte versuche es dem page_Prender-Event hinzuzufügen. – Gayatri

+0

Eigentlich versuche ich eine Datei auf click event von linkbutton zu öffnen. Dieser Code wird also im click-Ereignis der Link-Schaltfläche platziert. protected void lnkvwReport_Click (Objektabsender, EventArgs e) – user2486976

+0

Probieren Sie 'RegisterClientScriptBlock' statt' RegisterStartupScript' aus –

Antwort

8

Es gibt Probleme mit dem Inline-Javascript. Es funktioniert nicht mit dem Inline-Javascript. als ich es auf die aspx-Seite als separate JavaScript-Funktion getrennt und die Funktion im Registerstartupsscript aufgerufen habe, funktionierte es.

Javascript

function OpenPopup() {    
     window.open('PulseUserManagement.aspx', null, 'height=500, width=1100, status=no,  resizable=no, scrollbars=yes, toolbar=no,location=no, menubar=no'); 
    } 

CS Code

ScriptManager.RegisterStartupScript(updatepanel1, updatepanel1.GetType(), "Pop up", "OpenPopup();", true); 

Bitte versuchen Sie es wie diese, es funktioniert.

+0

Es gibt keine Überladung von 'ScriptManager.RegisterStartupScript', die 5 Argumente akzeptiert. Warum/wie gehst du updatepanel1? – iamwonder

Verwandte Themen