C# 网页确认中的表格提交

C# 网页确认中的表格提交,c#,.net,visual-studio-2010,oracle11g,webpage,C#,.net,Visual Studio 2010,Oracle11g,Webpage,下面的代码接受表单中的文本并将其插入表中。我想在显示消息“data has added”(数据已添加)后将其添加到表中并重定向到同一页。但问题是,它被重定向到目标页,但没有显示消息。我猜这是因为cmd.ExecuteQuery();正在生成响应并且正在被重定向 但我想让它显示信息。 我应该做什么改变。提前谢谢 protected void Button2_Click(object sender, EventArgs e) { string v = System.Configuratio

下面的代码接受表单中的文本并将其插入表中。我想在显示消息“data has added”(数据已添加)后将其添加到表中并重定向到同一页。但问题是,它被重定向到目标页,但没有显示消息。我猜这是因为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();    

}
protectedvoid按钮2\u单击(对象发送者,事件参数e)
{
字符串v=System.Configuration.ConfigurationManager.ConnectionString[“harish”].ConnectionString;
con=新的OracleConnection(v);
con.Open();
string query=“插入leave_module1值(:name,:desig,:srno,:tol,:compdates,:fd,:td,:nod,:备注)”;
OracleCommand cmd=新的OracleCommand(查询,con);
//OracleCommand.BindByName=true;
尝试
{
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(“:备注”,OracleType.VarChar,50).Value=TextBox7.Text;
cmd.ExecuteNonQuery();
ClientScript.RegisterStartupScript(Page.GetType(),“验证”,
“警报(‘数据已添加’)”;
重定向(“Default2.aspx”);
}
抓住
{
Label13.可见=真;
}
con.Close();
}

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

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

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


尝试将以下内容更改为javascript

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

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


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

不要使用Response.Redirect

只需使用javascript:

ClientScript.RegisterStartupScript(Page.GetType(), "validation", 
     "<script language='javascript'>alert('The Data has been added'); window.location='default2.aspx';</script>");         
ClientScript.RegisterStartupScript(Page.GetType(),“验证”,
“警报('已添加数据');window.location='default2.aspx';”;

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

我已经在母版页中创建了一个消息变量,在类似您的情况下,我会

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

在您的情况下,面板可能有一个“确定”或“关闭”按钮,或者您可以使用Ajax控制工具包中的其他对象。

实际上,我正在将其重定向到同一页面,以便所有文本字段都为空,以便用户再次输入详细信息。因此,如果您重定向到同一页面,则插入后可能只清空该字段而不是重定向到同一页。我不使用警报的建议仍然有效
Response.Redirect("Default2.aspx"); 
ClientScript.RegisterStartupScript(Page.GetType(), "validation", 
     "<script language='javascript'>alert('The Data has been added'); window.location='default2.aspx';</script>");