Commentaire de: Cyril DURAND [Visiteur] · http://blogs.developpeur.org/cyril
Sans vouloir t'offenser, pour la question sur la textbox, je ne pense pas que tu répondes à la question :)

En effet, la question est "lorsque l'on implemente LIPostBackEventHandler la persistance des proproiétés est activé ?"

Je répondrais non, IPostBackDataHandler (et non IPostBackEventHandler) est nécessaire quand le webcontrol posséde des champs de type input, ce qui est le cas d'une textbox.
Cette interface permet de récuperer la valeur de l'input en cas de postback. C'est très rare d'avoir besoin de cette interface puisque pour tous les input existant en HTML il existe un WebControl correspondant. On peut avoir besoin de cette interface si on ne veut pas faire de composition (via CompositeControl) mais la nécessité de ce cas est rare.

IPostBackDataHandler est Viewstate n'a donc pas grand chose à voir, dans le cas de l'exemple, la persistance de la propriété Text est "assuré" car c'est le formulaire qui renvoie la valeur de cette propriété et non le viewstate.

Du coup le fait que la propriété Text persiste dans le viewstate peut paraitre étrange puisque cette valeur se trouve déjà dans les données POST classique du formulaire. Cela se justifie lorsque la textbox se trouve dans dans un container où l'on peut jouer avec la visibilité, ce qui est le cas du multiview & co.
18.10.08 @ 16:35
Commentaire de: amethyste [Membre] Email
merci Cyril de ces précisions, tu as raison je ne répondais pas vraiment à la question.

18.10.08 @ 18:42
Commentaire de: Billou13 [Visiteur]
Bonjour,

J'ai bien étudié vos réponses et je vous en remercie (je suis la personne ayant posé les questions).

Cependant, je ne comprend pas (ou plutôt je comprend totalement...) la première réponse sur la propriété IsDirty à false.

Je comprend tout à fait ce que tu expliques. IsDirty est fait pour différencier les propriétés instanciées avant initialisation (code de la page aspx ou méthode OnInit) des autres.
De plus, les propriétés chargées avant initialisation n'ont nullement besoin d'être sauvegardées (normal). Cependant, pour moi (dites moi si je me trompe), ces propriétés correspondent à une propriété IsDirty à false.
Donc, pour moi, les propriétés qui doivent être sauvegardées dans le ViewState sont les propriétés avec IsDirty=true (ou non false).

En effet, si je lance le code suivant dans le page_load:
if(!IsPostBack)
{
lbl1.txt = "test";
}
Je voudrais que ce texte soit sauvegardé quelque part pour être restituer à chaque chargement de page. Et pour moi, le IsDirty passe à true après l'exécution du code (lbl1.txt = "test") si je comprend bien ton article.

Donc, ca reste flou dans mon esprit. Je suis d'accord avec toi sur ton raisonnement mais tu conclues en disant: on sauvegarde les propriétés avec IsDirty=false (c'est là que je te perds ^^).

Merci encore pour tout,

Bonne journée,
20.10.08 @ 10:01
Commentaire de: amethyste [Membre] Email
oui j'avais pas vu ce point

effectiement il y a une erreur dans mon texte que l'on m'a d'ailleurs fait remarquer en juin dernier.

j'ai intervertit le true et le false dans le fonctionnement de IsDirty
20.10.08 @ 16:25

Laisser un commentaire


Votre adresse email ne sera pas révélée sur ce site.

Votre URL sera affichée.
MédiocreExcellent
(Les retours à la ligne deviennent des <br />)
(Nom, e-mail & site Web)
(Autoriser les utilisateurs à vous contacter par un formulaire de message (votre adresse email ne sera not révélée.))
This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)
« Les chaînes et le contexte linguistiqueSAGA 5: sérialisation XML »