IPostbackEventHandler VS IPostbackDataHandler

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?

  1. DropDownList vs interfaces d’événements de calendrier:
    • La sélection dans la liste déroulante est considérée comme une donnée. Vous soumettez les informations dans la liste déroulante sous forme de données (dans la plupart des cas).
    • La modification de la sélection sur le contrôle Calendar est considérée comme un événement mais pas comme un événement qui envoie des données. Cela déclenche simplement un événement pour que le code sache changer l’état du contrôle.
      La différence entre ces deux est très subtile.
  2. La documentation pour 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é