1)
用户在DropDownList中选择一个项目被视为回发数据,因此DropDownList实现IPostbackDataHandler。
a)但是为什么用户(在“日历”控件中)不移到另一个月也被视为回发数据?因此,为什么Calendar实现IPostbackEventHandler而不实现IPostbackDataHandler?
2)
a)我假设实现IPostbackEventHandler而不是IPostbackDataHandler的控件从不接收回发数据?
b)如果控件实现了IPostbackDataHandler,则控件的postback事件将在每次数据更改时触发,即使该控件没有引起回发
但是,如果控件实现了IPostbackEventHandler,那么只有该控件的回发事件才会引发该控件是否还触发了回发吗?
最佳答案
两者之间的区别非常微妙。
IPostBackEventHandler
和 IPostBackDataHandler
的文档在文档中解释了它们的用途,但是它们不能使区分清楚:IPostBackEventHandler
用于触发不依赖于数据而是依赖于用户操作的事件。例如,Calendar
控件可以在单击日期时触发事件。此事件取决于用户的操作,而不取决于用户输入的数据。 IPostBackDataHandler
用于触发依赖于控件中数据的事件。例如,TextBox
具有OnTextChanged
事件,仅当TextBox
中的文本更改时才应触发该事件。