Web开发满打满算也就3个多月的时间,里面有些东西还是没有接触过,比如这个页面刷新回传的问题,请教了几个coder,得到的答案都是跳转。问题时如果提交成功后不用alert给用户提示成功,而在页面中用Label给出成功的提示的话,那使用跳转来解决这个回传问题似乎就不太好了,但至今我也没找到好的解决办法,有人说清楚缓冲区数据就可以,可我试验了也是不行。看来到目前为止,我所知道能解决此问题的办法也只有跳转了,无奈啊。。。
我的测试代码如下。
新增内容:
1)
如果页面不需要记忆什么东西或提示alert,则使用1),否则使用2)
我的测试代码如下。
protected void btnOK_Click(object sender, EventArgs e)
{
string strConn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\VS2005\AspNetTest\App_Data\TestDb.mdf;Integrated Security=True;User Instance=True";
string strComm = "Insert Into Person(Name)Values('" + txtName.Text.Trim() + "')";
SqlConnection conn = new SqlConnection(strConn);
SqlCommand comm = new SqlCommand(strComm, conn);
try
{
conn.Open();
comm.ExecuteNonQuery();
lbInfo.ForeColor = System.Drawing.Color.Green;
lbInfo.Text = "提交成功";
}
catch
{
lbInfo.ForeColor = System.Drawing.Color.Red;
lbInfo.Text = "提交失败";
}
finally
{
conn.Close();
Response.Redirect(Request.RawUrl);//重新跳转到本页面
}
}
{
string strConn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=D:\VS2005\AspNetTest\App_Data\TestDb.mdf;Integrated Security=True;User Instance=True";
string strComm = "Insert Into Person(Name)Values('" + txtName.Text.Trim() + "')";
SqlConnection conn = new SqlConnection(strConn);
SqlCommand comm = new SqlCommand(strComm, conn);
try
{
conn.Open();
comm.ExecuteNonQuery();
lbInfo.ForeColor = System.Drawing.Color.Green;
lbInfo.Text = "提交成功";
}
catch
{
lbInfo.ForeColor = System.Drawing.Color.Red;
lbInfo.Text = "提交失败";
}
finally
{
conn.Close();
Response.Redirect(Request.RawUrl);//重新跳转到本页面
}
}
新增内容:
1)
Response.Redirect(Request.RawUrl);
2)Response.Write("<script language='javascript'>alert('新增成功');window.location.href=window.location.href;</script>");如果页面不需要记忆什么东西或提示alert,则使用1),否则使用2)