Я использую ASP.NET Ajax. Как я могу сказать браузеру закрыть текущее окно после завершения вызова сервера (код на стороне сервера)?
Мне удалось сделать это с помощью метода ASP.NET Ajax ScriptManager "RegisterDataItem" в методе сервера (внутри обработчика нажатия кнопки):
sm.RegisterDataItem(ActionLabel, "action:closewindow")
и скрытый ярлык и обрабатываем его таким образом на клиенте:
function PageLoadingHandler(sender, args)
{
var dataItems = args.get_dataItems();
if (dataItems['ActionLabel'] == 'action:closewindow') {
window.close()
}
}
Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(PageLoadingHandler);
Но чувствуется грязный. Должен быть более элегантный способ сделать это.
Спасибо за любой совет.





Если я вас правильно понял, регистрация window.close() с помощью метода ScriptManagersRegisterStartupScript в обработчике событий должна работать. Подробнее об использовании ScriptManager.RegisterStartupScript см. MSDN
Ааааааааааааааааааааа! Да, это сработало. Большое спасибо! Я был уверен, что пробовал это раньше.