IPostbackEventHandler VS IPostbackDataHandler - PullRequest
6 голосов
/ 28 мая 2009

1) Пользователь, выбирающий элемент в DropDownList , считается данными обратной передачи, и по этой причине DropDownList реализует IPostbackDataHandler .

а) Но почему пользователь не перемещает (в Календарь элемент управления) в другой месяц также данные обратной передачи? Таким образом, почему Календарь реализует IPostbackEventHandler , а не IPostbackDataHandler ?


2) * * тысяча двадцать-дв а) Я предполагаю, что элементы управления, реализующие IPostbackEventHandler вместо IPostbackDataHandler никогда не получают данные обратной передачи?


b) Если элемент управления реализует IPostbackDataHandler , то событие обратной передачи элемента управления будет запускаться при каждом изменении его данных, даже если этот элемент управления не вызвал обратную передачу

Но если элемент управления реализует IPostbackEventHandler , то только тогда, когда будет вызываться событие обратной передачи элемента управления, будет ли этот элемент управления также инициировать обратную передачу?

Ответы [ 2 ]

19 голосов
/ 28 мая 2009
  1. DropDownList против интерфейсов событий календаря:
    • Выбор в раскрывающемся списке считается данными. Вы должны предоставить информацию в раскрывающемся списке как данные (в большинстве случаев).
    • Изменение выбора в элементе управления Calendar считается событием, но не событием, которое передает данные. Он просто вызывает событие, чтобы код знал об изменении состояния элемента управления.
      Разница между этими двумя очень тонкая.
  2. Документация для IPostBackEventHandler и IPostBackDataHandler объясняет их назначение в документации, но они не в состоянии прояснить различие:
    • IPostBackEventHandler используется для запуска событий, которые зависят не от данных, а от действий пользователя. Например, элемент управления Calendar может инициировать событие для нажатия на дату. Это событие зависит от действий пользователя, а не от данных, введенных пользователем.
    • IPostBackDataHandler используется для запуска событий, которые зависят от данных в элементе управления. Например, TextBox имеет событие OnTextChanged, которое должно запускаться только в случае изменения текста в TextBox.
3 голосов
/ 17 июля 2009

Чтобы добавить, элементы управления, которые реализуют IPostbackDataHandler, не полагаются на состояние представления для сохранения данных через обратную передачу.

Редактировать: но все элементы управления зависят от состояния просмотра, чтобы сохранить видимость

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...