wrest.write不起作用ASP.NET



on按钮单击事件,插入数据后,我想显示数据已成功插入的消息。这是我的代码

if (com2.ExecuteNonQuery() >= 1)
        {
            Response.Write("<script LANGUAGE='JavaScript' >alert('Request Submitted Successfully!')</script>");
        }
        else
        {
            Response.Write("<script LANGUAGE='JavaScript' >alert('There is some error. Please enter again')</script>");
        }

在上面代码之后不久,在同一事件中插入的空文本框代码之前,它一直工作正常。这是代码

foreach (var control in this.Controls)
        {
            TextBox tb = control as TextBox;
            if (tb != null)
            {
                tb.Text = string.Empty;
            }
        }
        Response.Redirect("Default.aspx"); 

现在,在数据插入后,TextBox为空,数据也正在插入,但没有显示弹出消息。问题在哪里

我不是100%确定您的逻辑,而是让服务器执行重定向,而是在致电alert之后在客户端上执行此操作:

if (com2.ExecuteNonQuery() >= 1) {
    Response.Write("<script LANGUAGE='JavaScript' >alert('Request Submitted Successfully!');window.location='Default.aspx';</script>");
} else {
    Response.Write("<script LANGUAGE='JavaScript' >alert('There is some error. Please enter again');window.location='Default.aspx';</script>");
}

您的Response.Redirect("Default.aspx")在服务器级别运行,因此您永远不会给客户端渲染JavaScript的机会,因此您永远不会看到您的响应。write正在输出。

为什么不具有<asp:Label>控件,该控件会显示您要寻找的消息。

所以,您可以做的不是JavaScript消息:

tb.Text = String.Empty; //clear the textbox
label.Text = "Success Message.";  //show the message

已经有一段时间了,因为我使用了WebForms,但是如果您启用了ViewState,则应该使用。您可能还想查看更新程序。

最新更新