当我在ASPX页面中为Web控件添加事件处理程序时 - 为什么它会传递给发件人?使用发送者与仅通过事件处理程序中的"ID"引用控件有什么好处?
我可以看到我是否有一个处理事件的单独类,并且多个控件将使用事件处理程序.但是如果我确定只有这个控件会处理这个事件,那么引用控件ID而不是将发送者强制转换为我的对象类型是不是很糟糕?
谢谢!
ice*_*ava 12
您似乎只是从ASP.NET角度看.NET事件..NET事件模型广泛用于整个.NET Framework,而不仅仅用于ASP.NET页面和控件.
此模式非常灵活,允许任何(正确预期的)对象成为事件的起源,允许事件侦听器在引发它的对象上"归零"以进行进一步处理.请记住,事件不仅需要一个原点和一个侦听器/处理程序.
页面和控件都是对象,所以要使其足够灵活,发件人是键入的对象.对于某些编程规则,应该能够定义可以引发该事件并将发送方对象强制转换回原始类型的已知类型.如果它纯粹是一个字符串控件ID,则必须找到具有匹配ID的控件,这在填充了大量控件层的页面中可能并不容易.