2008-10-30 11 views
1

J'utilise ASP.NET Ajax. Comment puis-je dire au navigateur de fermer la fenêtre en cours après la fin de l'appel du serveur (code côté serveur)?ASP.NET Ajax: fermer la fenêtre après un appel Ajax?

j'ai réussi à le faire en utilisant la méthode ScriptManager d'ASP.NET Ajax « de RegisterDataItem » dans la méthode du serveur (dans un bouton gestionnaire de clic):

sm.RegisterDataItem(ActionLabel, "action:closewindow") 

et une étiquette cachée et la manipulation de cette façon sur la client:

function PageLoadingHandler(sender, args) 
{ 
    var dataItems = args.get_dataItems(); 
    if (dataItems['ActionLabel'] == 'action:closewindow') { 
     window.close() 
    } 
} 
Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler); 

Mais il se sent sale . Il doit y avoir une façon plus élégante de le faire.

Merci pour tout conseil.

Répondre

1

Si je vous ai bien compris, l'enregistrement de window.close() avec la méthode ScriptManagersRegisterStartupScript sur le gestionnaire d'événements devrait fonctionner. Pour plus de détails sur l'utilisation ScriptManager.RegisterStartupScript voir MSDN

+0

Aargh! Oui, ça a marché. Merci beaucoup! J'étais sûr d'avoir déjà essayé ça. – splattne

Questions connexes