C# 网页确认中的表格提交
下面的代码接受表单中的文本并将其插入表中。我想在显示消息“data has added”(数据已添加)后将其添加到表中并重定向到同一页。但问题是,它被重定向到目标页,但没有显示消息。我猜这是因为cmd.ExecuteQuery();正在生成响应并且正在被重定向 但我想让它显示信息。 我应该做什么改变。提前谢谢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
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>");