gpt4 book ai didi

c# - 删除的事件处理程序在回发期间继续触发

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

检查并重新检查我的代码后,我不明白为什么 btnBack_Click 事件在我删除该事件并在 Page_Load 中注册另一个事件后继续触发

btnBack.Click -= new EventHandler(btnBack_Click);

btnBack.Click += new EventHandler(btnPreviewBack_Click);

是回传吗?是不是我没有去掉aspx上的OnClick

最佳答案

我们看不到您的 Page Lifecycle 中的确切位置您正在更改 Click 事件,但是,请记住,一旦生命周期开始,绝对所有(就事件处理程序更改而言)都是“撤消的”(尽管导致回发的事件仍将被执行)。

当回发发生时(无论是否异步),所有事件处理程序都将恢复到其原始配置。

最好的方法是将您的事件处理程序更改添加到 Page_PreRender 事件:

protected void Page_PreRender(Object sender, EventArgs e)
{
if (_MustChangeEventHandler)
{
btnBack.Click -= new EventHandler(btnBack_Click);

btnBack.Click += new EventHandler(btnPreviewBack_Click);
}
}

关于c# - 删除的事件处理程序在回发期间继续触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16312415/

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