作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 ascx 控件中,我有一个按钮,我在其中调用一个事件处理程序,然后从该事件处理程序调用演示者中的一个方法
在 ascx 页面上
public event EventHandler<EventArgs> Add;
protected void btnAdd_Click(object sender, EventArgs e)
{
if (Add != null)
Add(sender, e);
}
在演示者身上
AddListView.Add += delegate(object sender, EventArgs e)//AddListView is a Interface
{
Add();
};
当我单击 btnAdd 时,它工作正常并且正在添加记录,但是当我刷新浏览器页面时,按 F5 键并再次单击鼠标 btnAdd 会着火。我试着用
// Page refresh F5 btn press
protected override void LoadViewState(object savedState)
{
object[] AllStates = (object[])savedState;
base.LoadViewState(AllStates[0]);
_refreshState = bool.Parse(AllStates[1].ToString());
_isRefresh = _refreshState == bool.Parse(Session["__ISREFRESH"].ToString());
}
// Page refresh F5 btn press
protected override object SaveViewState()
{
Session["__ISREFRESH"] = _refreshState;
object[] AllStates = new object[2];
AllStates[0] = base.SaveViewState();
AllStates[1] = !(_refreshState);
return AllStates;
}
然后它工作正常但在刷新后我无法再次单击 btnAdd,因为单击 btnAdd,我再次进行刷新然后它工作正常..
我在其他控件上调用此控件,因为我有一个点击项目页面的数据列表将再次回发。
如何在不单击 btnAdd 的情况下停止自动按钮单击 F5 或页面刷新。
请有人帮帮我..
最佳答案
有时一个简单的 Response.Redirect
就可以了。它基本上将初始 POST 转换为不同的 GET 请求。只要您坚持所有已发布的信息,这就有效。否则,很明显,它们将不再可用。
protected void Button1_Click(object sender, EventArgs e)
{
// we are in Default.aspx here!
Response.Redirect("Default.aspx");
}
这并不总是有效,而且确实有缺点。而且,这种方式并不太复杂。使用路由框架可能会让您的 URL 更流畅。
关于c# - 如何停止自动按钮点击 F5 和页面刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9293899/
我是一名优秀的程序员,十分优秀!