1) L’utilisateur sélectionnant un élément dans DropDownList est considéré comme une donnée de publication. C’est pourquoi DropDownList implémente IPostbackDataHandler .
a) Mais pourquoi l’utilisateur déplacé (dans le contrôle Calendrier ) vers un autre mois n’est-il pas également considéré comme une donnée de publication? Ainsi, pourquoi Calendar implémente- t- il IPostbackEventHandler et non pas IPostbackDataHandler ?
2)
a) Je suppose que les contrôles implémentant IPostbackEventHandler au lieu de IPostbackDataHandler ne reçoivent jamais de données de publication?
b) Si le contrôle implémente IPostbackDataHandler , alors l’événement de publication du contrôle sera déclenché chaque fois que ses données sont modifiées, même si ce contrôle n’a pas provoqué de publication
Mais si le contrôle implémente IPostbackEventHandler , la seule fois où l’événement de publication du contrôle sera déclenché est si ce contrôle a également déclenché une publication?
IPostBackEventHandler
et IPostBackDataHandler
explique leur objective dans la documentation, sans toutefois préciser clairement la distinction:
IPostBackEventHandler
est utilisé pour déclencher des événements qui ne dépendent pas de données, mais de l’action d’un utilisateur. Par exemple, le contrôle Calendar
peut déclencher un événement pour lequel une date est cliquée. Cet événement dépend des actions de l’utilisateur et non des données entrées par l’utilisateur. IPostBackDataHandler
est utilisé pour déclencher des événements qui dépendent des données du contrôle. Par exemple, une zone de OnTextChanged
a un événement OnTextChanged
, qui ne devrait être déclenché que si le texte de la zone de texte change. Pour append, les contrôles qui implémentent IPostbackDataHandler ne dépendent pas de l’état d’affichage pour conserver les données sur des publications.
Edit: Mais tous les contrôles dépendent de l’état d’affichage pour conserver la visibilité