1)
用户在DropDownList中选择一个项目被视为回发数据,因此DropDownList实现IPostbackDataHandler。

a)但是为什么用户(在“日历”控件中)不移到另一个月也被视为回发数据?因此,为什么Calendar实现IPostbackEventHandler而不实现IPostbackDataHandler?

2)
a)我假设实现IPostbackEventHandler而不是IPostbackDataHandler的控件从不接收回发数据?

b)如果控件实现了IPostbackDataHandler,则控件的postback事件将在每次数据更改时触发,即使该控件没有引起回发

但是,如果控件实现了IPostbackEventHandler,那么只有该控件的回发事件才会引发该控件是否还触发了回发吗?

最佳答案

  • DropDownList与Calendar事件接口(interface):
  • 下拉列表中的选择被视为数据。您将在下拉列表中将信息作为数据提交(在大多数情况下)。
  • 在Calendar控件上更改选择被认为是一个事件,而不是提交数据的事件。它只是触发一个事件,以便代码知道更改控件的状态。

    两者之间的区别非常微妙。
  • IPostBackEventHandler IPostBackDataHandler 的文档在文档中解释了它们的用途,但是它们不能使区分清楚:
  • IPostBackEventHandler用于触发不依赖于数据而是依赖于用户操作的事件。例如,Calendar控件可以在单击日期时触发事件。此事件取决于用户的操作,而不取决于用户输入的数据。
  • IPostBackDataHandler用于触发依赖于控件中数据的事件。例如,TextBox具有OnTextChanged事件,仅当TextBox中的文本更改时才应触发该事件。
  • 08-05 14:16