为什么自定义事件处理程序在asp.net中引发了两次?

时间:2010-01-14 05:35:00

标签: asp.net

我创建了一个自定义事件并为其分配了一个处理程序。

引发事件的行被称为一次,但处理程序被称为

两次,为什么会这样?

请帮帮忙?

2 个答案:

答案 0 :(得分:0)

如果事件被附加了两次,那么当你举起事件时,事件处理程序将被调用两次。例如

public void MyEventHandler(object sender, EventArgs e) {
}

...

someObject.SomeEvent += MyEventHandler;
someObject.SomeEvent += MyEventHandler;

...

someObject.RaiseSomeEvent();

这将导致MyEventHandler被调用两次。您对该事件仅被附加一次有多确定?

答案 1 :(得分:0)

您可能希望考虑其他一些操作可以触发您处理的事件,例如将数据绑定到组合框时,它会自动引发OnSelectionChange事件。

因此,您可以在OnLoad中将数据绑定到组合,以便引发事件,并在OnInit上为组合分配一些默认值,从而再次引发事件。

如果没有您的一些代码,这只会帮助您意识到此问题可能以多种方式发生。

让我们看看代码吧! :)