Envoi d'un UpdatePanel désélectionne la case à cocher dans un autre UpdatePanel?

J'ai deux cases à cocher dans un panneau de mise à jour. L'un est un contrôle ASP.NET CheckBox, l'autre n'est qu'un élément HTML <input> . J'ai un bouton dans un panneau de mise à jour différent .

Alors, voici la partie pertinente de la page:


    
        <input type="checkbox" id="check1" name="check1" />HTML Input

Je coche les deux cases, puis je clique sur le bouton. Ce que je vois, c'est que la coche disparaît de celle qui contient uniquement du HTML, mais qu'elle est toujours présente pour le contrôle CheckBox.

Pourquoi? J'aurais pensé que rien dans le premier panneau de mise à jour ne changerait, car je faisais une publication partielle du deuxième panneau de mise à jour.

Si je déplace les deux cases en dehors du panneau de mise à jour, les deux gardent leurs coches (comme je l’aurais prévu).

1
La réponse de Mitchel Sellers l'explique. J'ajouterai que je n'aurais pas dû être surpris que le contrôle CheckBox se comporte différemment de l'élément d'entrée (même s'ils sont tous deux rendus en tant qu'éléments d'entrée). La page reprendra ses valeurs par défaut tout au long du cycle de vie de la page, mais CheckBox restaurera la valeur publiée dans sa méthode LoadPostData.
ajouté l'auteur Tim Goodman, source

1 Réponses

Mon hypothèse est que vos panneaux de mise à jour doivent être configurés de manière à ce que SEUL le panneau de mise à jour réellement utilisé soit mis à jour. Lorsque UpdatePanel2 est mis à jour, les deux panneaux sont mis à jour. Je pense que tant que vous définissez la propriété UpdateMode = "Conditional" sur UpdatePanel1, vous obtiendrez l'effet souhaité.

Vous pouvez consulter cette documentation MSDN sur la UpdateMode propriété.

2
ajouté
Cela l'explique, merci. Je suppose que je pensais que le comportement que vous obtenez de UpdateMode = "Conditionnel" était le comportement par défaut, mais ce n'est pas le cas.
ajouté l'auteur Tim Goodman, source