2013-05-10 3 views
5

Szukałem SO & google, ale nie wydaje mi się, aby to działało. Kod jest w kodzie zdarzenia kliknięcia przycisku "Anuluj" w mojej aplikacji asp.net, ale nie wydaje się, aby zamknąć okno wyskakujące. Jakieś pomysły?ClientScript.RegisterStartupScript nie działa

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); 
     } 
    } 
} 

Aktualizacja: Po odświeżenie strony, gdy patrzę na stronie źródłowej, tylko kod widzę powiązany jest:

//<![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

Czy skrypt uzyskać renderowane na odświeżenie lub bez scenariusza w ogóle? –

+0

@Steven, nie wiesz, co masz na myśli – Csharp

+0

Po kliknięciu przycisku anulowania i odświeżeniu strony, wyświetl źródło strony. Czy 'window.close();' jest wyprowadzany i nie jest honorowany przez przeglądarkę, czy też istnieje problem z opublikowanym przez ciebie kodem C#. –

Odpowiedz

0

ponieważ nie mogłem dostać clientScript do pracy jako wymagany, zrobiłem obejście przy użyciu kodu poniżej:

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

można użyć zamiast tego

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

lub możesz także wypróbować ten jeden

Miłego dnia.

+0

'ScriptManager.RegisterStartupScript' jest przestarzałe lepiej ClientScript – David

+0

przy użyciu telerik? zamień na: RadScriptManager.RegisterStartupScript – Alaa