gpt4 book ai didi

c# - 如何停止自动按钮点击 F5 和页面刷新?

转载 作者:行者123 更新时间:2023-11-30 18:01:12 25 4
gpt4 key购买 nike

在我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com