2013-05-10 7 views
5

Ho cercato SO & google, ma non riesco a farlo funzionare. Il codice si trova nell'evento clickbehind di un pulsante "Annulla" nella mia applicazione asp.net ma sembra non chiudere la finestra popup. Qualche idea?ClientScript.RegisterStartupScript non funziona

try 
{ 
    if (btnCancel.Text == "Close") 
    { 
     String csName1 = "PopupScript"; 
     Type csType = this.GetType(); 

     ClientScriptManager cs = Page.ClientScript; 
     if (!cs.IsClientScriptBlockRegistered(csType, csName1)) 
     { 
      ClientScript.RegisterStartupScript(GetType(), "ClosePopup", "window.close();", true); 
     } 
    } 
} 

Aggiornamento: dopo il postback, quando guardo la pagina di origine, l'unico codice che vedo relativo è:

//<![CDATA[ 
(function() {var fn = function() {$get("ToolkitScriptManager1_HiddenField").value = '';Sys.Application.remove_init(fn);};Sys.Application.add_init(fn);})();window.close(); 
document.getElementById('ValidationSummary1').dispose = function() { 
    Array.remove(Page_ValidationSummaries, document.getElementById('ValidationSummary1')); 
} 
+0

Ha lo script ottenere rese sul postback, o nessuno script a tutti? –

+0

@Steven, non sono sicuro di cosa intendi – Csharp

+0

Quando fai clic sul pulsante Annulla e viene eseguito il postback, visualizza l'origine della pagina. Il 'window.close();' è in esecuzione e non è onorato dal browser, o c'è un problema con il codice C# che hai postato. –

risposta

0

da quando ho potuto non avere la ClientScript a lavorare come richiesto, ho fatto una soluzione usando il codice seguente:

function closeWin() { 
     //If txt = 'cancel' then close; 
     GetRadWindow().Close(); 
    } 


<td align="center"><asp:Button runat="server" ID="btnClose" Text="Close" 
     OnClientClick="closeWin();return false;" onclick="btnClose_Click"/></td> 
6

è possibile utilizzare questo invece

ScriptManager.RegisterStartupScript(this.Page, GetType(), "ClosePopup", "window.close();", true); 

o puoi provare anche questo

Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "ClosePopup", "window.close();", true); 

Buona giornata.

+0

'ScriptManager.RegisterStartupScript' è obsoleto migliore ClientScript – David

+0

utilizzando telerik? sostituire con: RadScriptManager.RegisterStartupScript – Alaa