使用Response.Write时如何使屏幕闪烁

时间:2014-12-31 01:08:44

标签: c# asp.net screen alert response.write

我想在我的网页上显示提醒。我使用try catch块使用了Response.Write。 当它显示警报时,页面变为白色,然后在警报框中单击“确定”后,页面将返回。我希望页面保持不变并显示警报。我该怎么做?这是我的C#代码。

    protected void ImageSave_Click(object sender, ImageClickEventArgs e)
    {
        SqlConnection cnn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
        cnn.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = cnn;

        cmd.CommandText =
                    "insert into BranchMst(SaupCode,BranchCode, BranchName, UseFlag, SeqNo) values ("
                    + "'" + comboSaup.SelectedValue 
                    + "','" + txtBranchCode.Text.TrimEnd()
                    + "','" + txtBranchName.Text.TrimEnd()
                    + "','" + txtSeqNo.Text.TrimEnd()
                    + "')";
        try
        {
            int ret = cmd.ExecuteNonQuery();
        }
        catch (System.Data.SqlClient.SqlException ex)
        {
            Response.Write("<script> alert('Error.Please check your ID');history.back(); </script>");
        }
        cnn.Close();

        ReflashData_Grid1();
        ClearField();
    }

2 个答案:

答案 0 :(得分:1)

试试这个

Response.Write(@"<script language='javascript'>setTimeout(alert(\'Error. Please check your ID\');history.back();', 200);</script>");

答案 1 :(得分:0)

这看起来像是Web浏览器呈现问题,而不是服务器问题。如果阻止渲染过程(例如阻塞警报方法),则渲染引擎无法处理其他HTML和脚本语句。因此,您需要异步调用消息框。

尚未测试,但这可能有效:

Response.Write("<script>setTimeout(alert(\'Error.Please check your ID\');history.back();', 200)</script>");

无论如何,重新考虑如何调用数据层以及如何处理异常。它们不应该用于业务工作流程。