在网页确认中提交表单

时间:2012-06-08 13:56:11

标签: c# .net visual-studio-2010 oracle11g webpage

下面的代码接受表单中的文本并将其插入table.i希望它添加到表中并在显示消息“已添加数据”后重定向到同一页面。但问题是它被重定向到目标页面但没有显示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();    

}

5 个答案:

答案 0 :(得分:2)

发生这种情况是因为你的代码将JS脚本添加到起始页面(让我们说Default1.aspx),然后你重定向到Default2.aspx,它不会包含JS代码

我建议你将一个参数(可能使用QueryString)传递给Default2.aspx页面,该页面将显示该消息。

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

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

答案 1 :(得分: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"); 

答案 2 :(得分:0)

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

herehere解释了执行此操作所需的JavaScript。

答案 3 :(得分:0)

不要使用Response.Redirect。

只需使用javascript:

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

答案 4 :(得分:0)

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

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

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

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