为什么这可以在UpdatePanel中运行,但不在UpdatePanel内部?

时间:2010-03-28 17:13:05

标签: c# asp.net

我已复制并粘贴此警报类: http://madskristensen.net/post/JavaScript-AlertShow%28e2809dmessagee2809d%29-from-ASPNET-code-behind.aspx

除了更新面板内的按钮外,它有效,但没有显示错误。内部的asp代码已执行,但客户端没有显示任何内容。

2 个答案:

答案 0 :(得分:1)

使用ScriptManager.RegisterClientScriptBlock而不是page.ClientScript.RegisterClientScriptBlock注册Javascript将负责在部分页面更新期间注册脚本。这是修改后的代码:

public static void Show(string message)
{
    // Cleans the message to allow single quotation marks
    string cleanMessage = message.Replace("'", "\\'");
    string script = "<script type=\"text/javascript\">alert('" + cleanMessage + "');</script>";

    // Gets the executing web page
    Page page = HttpContext.Current.CurrentHandler as Page;

    if (page != null)
    {
        ScriptManager.RegisterClientScriptBlock(page, typeof(Alert), "alert", script, false);
    }

}

答案 1 :(得分:1)

我建议不要使用updatePanels,实现可编写脚本的webservice,并通过asp.net为您生成的代理访问它 它会为你节省大量的神经和时间,因为updatepanel确实非常错误