c# - IPostbackEventHandler VS IPostbackDataHandler

标签 c# .net asp.net events postback

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

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


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


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

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

最佳答案

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

关于c# - IPostbackEventHandler VS IPostbackDataHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/918561/

相关文章:

c# - 在 .NET 中使用 iText7 检查 PDF 中的复选框

c# - 如何制作事件字典?

c# - 如何根据节点将 XML 文件拆分为多个 XML 文件

c# - 在库中使用多线程有哪些策略?

c# - 在另一个窗体中调用方法 C#

C#登录系统,在将密码插入数据库之前需要帮助散列密码

c# - 如何使用 BackgroundService 和依赖注入(inject)运行 Winforms?

c# - 如何将类对象转换为字符串?

ASP.NET:为什么我的 JavaScript 对象设置为 null?

c# - Asp.net 从后面的代码加载框架 src