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);
}
}
答案 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验证复选框?