MessageBox Inside Updatepanel不会显示

时间:2012-02-20 05:19:18

标签: c# asp.net updatepanel

c#中使用的消息框代码是以下代码,根据我的要求有条件地调用。除了使用Ajax更新面板外,它在所有情况下都能正常工作。 例如,如果在gridview中没有选中复选框,我想提示用户 适当的消息,代码被执行但没有显示消息框

 public static void MessageBox(string message, Page page)
    {       
        if (!string.IsNullOrEmpty(message))
        {
            Label lbl = new Label();
            lbl.Text = "<script type=\"text/javascript\" language=\"javascript\">" + "alert('" + message + "'); " + "</script>";
            page.Controls.Add(lbl);
        }
    }

5 个答案:

答案 0 :(得分:2)

使用 ScriptManager.RegisterClientScriptBlock ClientScriptManager .RegisterClientScriptBlock 方法在使用更新面板时添加脚本。

有一个例子here

答案 1 :(得分:1)

看起来您正在将标签直接添加到页面上。这对于完整的post-back场景(并且你提到它确实如此)可以正常工作,但是如果你不直接在UpdatePanel内部的地方添加它,它将不会被写入部分回发的页面。

答案 2 :(得分:1)

您可以按照建议here

执行操作

答案 3 :(得分:1)

我也在寻找同样的解决方案,因为我遇到了同样的问题。下面的方法对我有用,因为@Sids建议..

ScriptManager.RegisterClientScriptBlock(myControl, myControl.GetType(), "msg", "alert('Success')", true);

答案 4 :(得分:0)

据我所知,UpdatePanel中的Ajax回发只使用一些ASP.Net Ajax JavaScript魔法来操纵UpdatePanel内的HTML。如果您在更新的HTML中添加JavaScript代码,它将无法执行。

为什么不使用CustomValidator验证复选框?