IPostbackEventHandler VS IPostbackDataHandler

Prg*_*Gnt 6 .net c# asp.net events postback

1)用户在DropDownList中选择项目被认为是回发数据,因此DropDownList实现IPostbackDataHandler.

a)但是为什么用户移动(在Calendar控件中)到另一个月也没有被认为是回发数据?那么,为什么Calendar实现IPostbackEventHandler而不是IPostbackDataHandler呢?


2)
a)我假设实现IPostbackEventHandler而不是IPostbackDataHandler的控件永远不会收到回发数据?


b)如果控件实现了IPostbackDataHandler,那么每次数据更改时都会触发控件的回发事件,即使该控件没有引发回发

但是如果控件实现了IPostbackEventHandler,那么只有控件的回发事件会被引发的时间是该控件是否也触发了回发?

Dan*_*ert 18

  1. DropDownList与Calendar事件接口:
    • 下拉列表中的选择被视为数据.您可以将下拉列表中的信息作为数据提交(在大多数情况下).
    • 更改Calendar控件上的选择被视为事件,但不是提交数据的事件.它只是触发一个事件,以便代码知道改变控件的状态.
      这两者之间的区别非常微妙.
  2. 文档中的文档IPostBackEventHandlerIPostBackDataHandler解释其目的,但它们未能明确区分:
    • IPostBackEventHandler用于触发不依赖于数据的事件,而是用于触发用户操作的事件.例如,Calendar控件可以触发单击日期的事件.此事件取决于用户的操作,而不是用户输入的数据.
    • IPostBackDataHandler用于触发依赖于控件中数据的事件.例如,a TextBox有一个OnTextChanged事件,只有在TextBox更改中的文本时才会触发该事件.

  • 如果可以的话,我会接受这个答案,而不是那个问过这个问题并且从不回头的人. (6认同)