2009-05-27 3 views
6

1) utilisateur sélectionner un élément dans DropDownList est considéré comme des données postback, et pour cette raison DropDownList implémente IPostBackDataHandler.IPostBackEventHandler VS IPostBackDataHandler

a) Mais pourquoi l'utilisateur n'est pas en déplacement (dans Calendrier Contrôle) à un autre mois également considéré comme une donnée de publication? Ainsi, pourquoi Calendrier implémenter IPostbackEventHandler et non IPostbackDataHandler?


2)
a) Je suppose que les contrôles d'application IPostBackEventHandler au lieu de IPostBackDataHandler ne reçoivent jamais les données de postback?


b) Si des outils de contrôle IPostBackDataHandler, puis l'événement postback de contrôle sera tiré chaque fois que ses données ont été modifiées, même si ce contrôle n'a pas causé un postback

Mais si le contrôle met en œuvre IPostbackEventHandler, puis seul le moment où l'événement de publication de contrôle sera déclenché est si ce contrôle a également déclenché une publication?

Répondre

19
  1. DropDownList vs interfaces événement Calendrier:
    • La sélection dans la liste déroulante est considérée comme données. Vous devez soumettre les informations dans la liste déroulante en tant que 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 soumet des données. Il déclenche juste un événement pour que le code sache changer l'état du contrôle.
      La différence entre ces deux est très subtile. de
      • IPostBackEventHandler est utilisé pour déclencher des événements qui ne dépendent pas de données, mais sur un utilisateur:
    • La documentation IPostBackEventHandler et IPostBackDataHandler expliquer leur but dans la documentation, mais ils ne parviennent pas à faire la distinction claire action. Par exemple, le contrôle Calendar peut déclencher un événement lorsque vous cliquez sur une date. Cet événement dépend des actions de l'utilisateur, pas des données saisies par l'utilisateur.
    • IPostBackDataHandler est utilisé pour déclencher des événements qui dépendent des données dans le contrôle. Par exemple, un TextBox a un événement OnTextChanged, qui ne doit être déclenché que si le texte du TextBox change.
+6

Si je pouvais, j'accepter cette réponse à la place du gars qui a demandé et n'a jamais regardé en arrière. –

3

Pour ajouter, les contrôles qui mettent en œuvre IPostBackDataHandler ne repose pas sur l'état d'affichage pour la conservation des données sur postbacks.

Edit: Mais tous les contrôles dépendent de l'état de vue de conserver la visibilité

+1

+1 - Excellent point .. – desigeek