0

下面的代码接受表单中的文本并将其插入表中。我希望它添加到表中并在显示消息“数据已添加”后重定向到同一页面。但问题是它正在获取重定向到目标页面但不显示 message.im 猜测这是因为 cmd.ExecuteQuery(); 正在生成响应并被重定向...

但我希望它显示信息。我应该做些什么改变。提前谢谢

protected void Button2_Click(object sender, EventArgs e)
{

    string v = System.Configuration.ConfigurationManager.ConnectionStrings["harish"].ConnectionString;
    con = new OracleConnection(v);
    con.Open(); 
    string query="insert into leave_module1 values(:name,:desig,:srno,:tol,:compdates,:fd,:td,:nod,:remarks)";
    OracleCommand cmd = new OracleCommand(query, con);
    //OracleCommand.BindByName = true;
    try
    {
        cmd.Parameters.Add(":name", OracleType.VarChar, 50).Value = DropDownList2.Text;
        cmd.Parameters.Add(":desig", OracleType.VarChar, 30).Value = TextBox10.Text;
        cmd.Parameters.Add(":srno", OracleType.Number, 8).Value = TextBox8.Text;
        cmd.Parameters.Add(":tol", OracleType.VarChar, 10).Value = DropDownList1.Text;
        cmd.Parameters.Add(":compdates", OracleType.VarChar, 30).Value = TextBox9.Text;
        cmd.Parameters.Add(":fd", OracleType.DateTime).Value = TextBox3.Text;
        cmd.Parameters.Add(":td", OracleType.DateTime).Value = TextBox4.Text;
        cmd.Parameters.Add(":nod", OracleType.Number, 3).Value = TextBox5.Text;
        cmd.Parameters.Add(":remarks", OracleType.VarChar, 50).Value = TextBox7.Text;
        cmd.ExecuteNonQuery();
        ClientScript.RegisterStartupScript(Page.GetType(), "validation",
         "<script language='javascript'>alert('The Data has been added')</script>");
        Response.Redirect("Default2.aspx");


    }
    catch
    {

        Label13.Visible = true;           

    }

    con.Close();    

}
4

5 回答 5

2

发生这种情况是因为您的代码将 JS 脚本添加到您的起始页面(比如说 Default1.aspx),然后您重定向到Default2.aspx不包含 JS 代码的页面。

我建议您将参数(可能使用 QueryString)传递到Default2.aspx将显示消息的页面。

我不建议您使用 anAlert来显示消息。您最好使用页面上的 div 或 JQuery 插件来显示消息

http://jqueryui.com/demos/dialog/

于 2012-06-08T13:59:01.930 回答
0

尝试将以下内容更改为 javascript。

ClientScript.RegisterStartupScript(Page.GetType(), "validation",  
     "<script language='javascript'>alert('The Data has been added')</script>");  

对此

ClientScript.RegisterStartupScript(Page.GetType(), "validation",  
     "<script language='javascript'>alert('The Data has been added');window.location="Default2.aspx" </script>");  

并在您的代码中删除以下内容

Response.Redirect("Default2.aspx"); 
于 2012-06-08T14:01:15.247 回答
0

如果您希望用户在该页面上看到消息,则需要在插入数据后允许该页面可见,而不是立即重定向。您需要在几秒钟后使用 Javascript(客户端代码)来重定向,而不是使用服务器端 Response.Redirect。延迟是setTimeout()在 Javascript 中使用的。

此处此处解释了执行此操作所需的 javascript 。

于 2012-06-08T14:01:55.097 回答
0

不要使用 Response.Redirect。

只需使用javascript:

ClientScript.RegisterStartupScript(Page.GetType(), "validation", 
     "<script language='javascript'>alert('The Data has been added'); window.location='default2.aspx';</script>");         
于 2012-06-08T14:02:15.577 回答
0

我通过使用 Session 对象而不是 JavaScript 做了类似的事情。也许这个想法会对你有所帮助。

我在母版页中创建了一个消息变量,在像你这样的情况下,我会

  • 使用必要的文本设置消息变量
  • 重定向到所需的 aspx 页面
  • 母版页检查是否有要显示的消息。如果是,它会显示一个面板并重置变量

在您的情况下,面板可能有一个 OK 或 CLOSE 按钮,或者您可以使用 Ajax Control Toolkit 中的其他对象。

于 2012-06-08T14:09:57.813 回答