我有一个从模板表中提取数据的下拉列表。 我有一个添加按钮,插入新的模板。 添加按钮,便会带来了jQuery的弹出插入新值。 将会有一个保存按钮保存新的数据。 On_Save_Click我输入新数据并关闭弹出窗口。
这里是proplem:当我刷新页面,该页面再次输入值。 所以,我得到重复的条目!
问:我怎样才能避免这个问题? 我检查了Satckoverflow和谷歌,他们都建议重定向到另一页。 我不希望将用户重定向到另一个页面。 我如何使用相同的形式来避免这个问题? 请帮忙。
我有一个从模板表中提取数据的下拉列表。 我有一个添加按钮,插入新的模板。 添加按钮,便会带来了jQuery的弹出插入新值。 将会有一个保存按钮保存新的数据。 On_Save_Click我输入新数据并关闭弹出窗口。
这里是proplem:当我刷新页面,该页面再次输入值。 所以,我得到重复的条目!
问:我怎样才能避免这个问题? 我检查了Satckoverflow和谷歌,他们都建议重定向到另一页。 我不希望将用户重定向到另一个页面。 我如何使用相同的形式来避免这个问题? 请帮忙。
您可以使用视图状态或会话以指示数据已经插入(按下按钮)。
事情是这样的:
private void OnbuttonAdd_click()
{
if(ViewState["DataInserted"] != "1")
{
...
// Add new entry...
...
if(data inserted successfully)
{
ViewState["DataInserted"] = "1";
}
}
}
编辑:
public bool DataInserted
{
get
{
if (HttpContext.Current.Session["DataInserted"] == null)
{
HttpContext.Current.Session["DataInserted"] = false;
}
bool? dataInserted = HttpContext.Current.Session["DataInserted"] as bool?;
return dataInserted.Value;
}
set
{
HttpContext.Current.Session["DataInserted"] = value;
}
}
...
private void OnbuttonAdd_click()
{
if(!DataInserted)
{
...
// Add new entry...
...
if(data inserted successfully)
{
DataInserted = true;
}
}
}
最简单的方法是使用后/重定向/获取模式 。
基本上,页面生成刷新行动后需要重新发布该数据。 使用这种模式,你将重新加载整个页面。
与ASP.Net,你有一个简单的替代方法,使用UpdatePanel
。 这将刷新使用AJAX页面的一部分。 由于网页本身仍然是一个GET请求的结果,你可以刷新页面。 而当你使用ASP.Net,它很容易集成。
最后,您可以使用由AJAX刷新了家。 jQuery的,淘汰赛的组合和休息服务(例如),可以帮助您避免在一个Ajax调用的好处刷新整个页面。
有一些经验:
...我希望是有用的?
做到这一点是非常容易和有效
在页面加载()给出的IsPostBack这一翻译,请提供按钮点击内(发送或插入数据)
protected void Btn_Reg_Click1(object sender, EventArgs e)
{
try
{
if (IsPostBack)
{
Registration_Save();
Send_Mail();
txtEmail.Text = "";
txtname.Text = "";
Response.Redirect("~/index.aspx");
}
}
catch (Exception) { }
}
你不会看到刷新页面之后的任何服务器的消息..