Закройте окно браузера приложения ASP.NET и AJAX

голоса
1

Что это лучший способ, чтобы закрыть окно браузера приложения AJAX ASP.NET после стороны сервера была выполнена.

Я нашел решение , но это кажется немного комплекса за то , что я хочу сделать. Или это лучший способ выполнить мою задачу.

UPDATE: Я должен закрыть окно после нажатия кнопки

UPDATE 1: Я попробовал решение от другого SO вопроса, и он не работает для меня.

<asp:Button ID=btnMyButton runat=server onClick=btnMyButton_Click />

protected void btnMyButton_Click(object sender, EventArgs e)
{
}

Я использовал следующий код в моей странице, но «вы просматриваете веб-страница пытается закрыть окна» окно модуля выскочит.

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
            ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), closeWindow, window.close();, true);

В любом случае, чтобы предотвратить это?

Задан 10/12/2008 в 00:49
источник пользователем
На других языках...                            


4 ответов

голоса
1

На самом деле вы можете сделать это, поместив следующий код в случае нажатия кнопки.

protected void btnMyButton_Click(object sender, ImageClickEventArgs e)
{
    // Update database
    bool success = Presenter.DoDatabaseStuff();

    if (success)
    {
        // Close window after success
        const string javaScript = "<script language=javascript>window.top.close();</script>";
        if (!ClientScript.IsStartupScriptRegistered("CloseMyWindow"))
        {
            ClientScript.RegisterStartupScript(GetType(),"CloseMyWindow", javaScript);
        }
    }
    else
    {
        // Display failure result
        result_msg_area.Visible = true;
        lblError.Text = "An error occurred!";                
    }
}
Ответил 10/09/2010 в 15:36
источник пользователем

голоса
1

Нет, нет никакого способа, чтобы закрыть окно браузера без согласия пользователя. Вы можете войти их из приложения, но вы не можете принудительно закрыть окно браузера.

Ответил 10/12/2008 в 03:23
источник пользователем

голоса
0

Чтобы избежать предупреждения сценария, вы можете использовать это:

window.open('', '_self', '');window.close();

Так:

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
        ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), "closeWindow", "window.open('', '_self', '');window.close();", true);
Ответил 14/02/2012 в 20:43
источник пользователем

голоса
-2

Это довольно много его. Вы можете просто использоватьScriptManager.RegisterStartupScript(...)

Ответил 10/12/2008 в 00:53
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more