Update panels et validators

[Résolu]
Signaler
Messages postés
6
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
15 janvier 2009
-
Messages postés
6
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
15 janvier 2009
-
Bonjour,

Voici mon problème :

J'ai une page aspx avec 2 updatepanels dedans (Et un scripmanager donc).
Dans mon premier updatepanel j'ai placé un multiview, et 2 boutons, un bouton pour avancer dans les vues, un second pour descendre.
Dans le second updatepanel j'ai quelques TextBox avec des Validator(Expressions régulières, requiredfiled ...).

Seulement lorsque je clique sur les boutons disponibles dans l'un de mes dexu updatepanel pour changer de vue, les validators du troisème updatepanel sont lancés, donc je ne peux pas changer de vue...

J'ai pourant précisé UpdateMode="Conditional" dans tous mes updatepanel ...

Voici en gros mon code :

<

asp:ScriptManager
ID="SMgr"
runat="server">
</
asp:ScriptManager>
<table
border="0">
      <tr>
            <td
valign="top">
                  <div
class="TitreEspace"></div>
                  <div
class="EspaceTexte">
                        <asp:UpdatePanel
ID="UpdatePanel1"
runat="server"
UpdateMode="Conditional">
                              <ContentTemplate>
                                    <table
border="0">
                                          <tr>
                                                <td
class="previous">
                                                      <asp:ImageButton
ID="ImageButton2"
runat="server"
ImageUrl="~/imagespages/previous.png"
onclick="ImageButton2_Click"
AlternateText="Espace précédent"
/>
                                                </td>
                                                <td
class="colonnetitre">
                                                      <b>Contenue de l'update panel 1:
</b>
                                                </td>
                                                <td
class="next">
                                                      <asp:ImageButton
ID="ImageButton3"
runat="server"
ImageUrl="~/imagespages/next.png"
onclick="ImageButton3_Click"
AlternateText="Espace suivant"
/>
                                                </td>
                                          </tr>
                                    </table><br
/>
                                    <asp:MultiView
ID="MultiView1"
runat="server"
ActiveViewIndex="0">
                                          <asp:View
ID="View3"
runat="server">
                                                <uc2:AGIL
ID="AGIL1"
runat="server"
/>
                                          </asp:View>
                                          <asp:View
ID="View4"
runat="server">
                                                <uc1:CoursenLigne
ID="CoursenLigne1"
runat="server"
/>
                                          </asp:View>
                                    </asp:MultiView>
                              </ContentTemplate>
                         </asp:UpdatePanel>
                    </div>
                     <div
class="EffetBas"></div>
            </td>
            <td
valign="top">
                  <div
class="TitreEspace"></div>
                  <div
class="EspaceTexte">
                        <asp:UpdatePanel
ID="UpdatePanel3"
runat="server"
UpdateMode="Conditional">
                              <ContentTemplate>
                                    <b>Contactez moi :
</b><br
/><br
/>
                                    <asp:TextBox
ID="TextBox1"
runat="server"
Text="Entrez votre nom et pr‚nom"
Width="200px"></asp:TextBox>
                                    <asp:RequiredFieldValidator
ID="RequiredFieldValidator1"
runat="server"
ErrorMessage="*"
ControlToValidate="TextBox1"
Enabled="True"
></asp:RequiredFieldValidator><br
/>
                                    <asp:TextBox
ID="TextBox2"
runat="server"
Text="Entrez votre email"
Width="200px"></asp:TextBox>
                                    <asp:RequiredFieldValidator
ID="RequiredFieldValidator4"
runat="server"
ErrorMessage="*"
ControlToValidate="TextBox2"></asp:RequiredFieldValidator>
                                    <asp:RegularExpressionValidator
id="valValidEmail"
runat="server"
ControlToValidate="Textbox2"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
ErrorMessage="*"
Display="dynamic"/><br
/>
                                    <asp:TextBox
ID="TextBox3"
runat="server"
Text="Sujet du message"
Width="200px"></asp:TextBox>
                                    <asp:RequiredFieldValidator
ID="RequiredFieldValidator2"
runat="server"
ErrorMessage="*"
ControlToValidate="TextBox4"
></asp:RequiredFieldValidator><br
/>
                                    <asp:TextBox
ID="TextBox4"
runat="server"
TextMode="MultiLine"
Width="200px"
Height="120"
Text="Votre message."></asp:TextBox>
                                    <asp:RequiredFieldValidator
ID="RequiredFieldValidator3"
runat="server"
ErrorMessage="*"
ControlToValidate="TextBox4"></asp:RequiredFieldValidator><br
/>
                                    <asp:Button
ID="Button1"
runat="server"
Text="Envoyer le message"
onclick="Button1_Click"
/><br
/>
                                    <%
=Etatenvoiemessage %>

                           </ContentTemplate>
                  </asp:UpdatePanel><br
/><br
/>
            </div>
            <div
class="EffetBas"></div>
         </td>
      </tr>
</table>

Comment donc faire en sorte qu'en cliquant sur mes boutonsimages suivant et précédent, uniquement updatepanel1 se mette à jour ...

Merci d'avance.

6 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
Pour vérifier si l'assembly a bien été prise en compte, supprime la du dossier bin, et si ca plante c'est que ca a bien été pris en compte ;-) sinon doit surement te manquer les modifs à faire dans le web.Config.

Je viens de lire ton code, le pb que tu décris ne vient pas du problème des validator + updatepanel (mais tu allais l'avoir juste après ;)). Il faut utiliser les validationgroup si tu veux avoir des zones de validations.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
Bonjour,

une recherche google t'aurais rapidement permis de tomber sur ce post : http://blogs.developpeur.org/cyril/archive/2007/02/18/validator-et-updatepanel.aspx 

Bonne journée :)

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
6
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
15 janvier 2009

Bonjour,

En cherchant sur google j'étais déjà tombé sur ton blog (très enrichissant d'ailleurs, et pas que sur ce post, félicitation).

Mais mon probleme n'est pas que le validator ne fonctionne pas, au contraire, mais qu'il fonctionne même que je veux mettre à jour un autre updatepanel que celui dans lequel il est placé... (ou alors je comprends pas le probleme de validator que tu évoque dans ton blog, étant nouveau avec les fonctionnalités AJAX, je suis pas mal perdu des fois)

Mais je vais faire mes validations directement dans le code ... j'aurais pas de soucis.

Merci.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
Bonjour,

Faire la validation directement dans le code n'est pas une solution mais une bidouille ! :-)

Les controles de validations ont des comportement suspects avec ASP. net AJAX 1 (bug normalement corrigé avec ASP.net 3.5 mais j'ai pas vérifié). 

Pour faire fonctionner les validator avec ASP.net 2.0 + ASP.net Ajax 1.0, il faut utiliser le TagMapping disponible via le post de matt gibbs. Si tu utilises déjà ces TagMapping alors le problème vient d'ailleurs, je n'ai pas lu le code que tu proposes peut être que c'est le comportement normal des validator, mais la validation avec UpdatePanel et plus que foireuse sans ces tagmappings.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
6
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
15 janvier 2009

Bonsoir,

Mien à faire, même en rajoutant les tagmapping et le fichier dll ...J'ai toujours la même erreur.

Une question me turlupine, faut-il faire une manipulation au niveau serveur pour que le fichier dll soit pris en compte ? Ou ce ci se fait-il automatiquement dès que le fichier dll est mis en ligne ?

Par contre mon site se lance sans probleme avec le fichier dll dans le dossier bin et les tagmapping. Y a-t-il un moeyn de savoir ci cette modification a été prise en compte par le serveur ?

Encore merci.
Messages postés
6
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
15 janvier 2009

Merci bien, le probleme venait du manque de validationgroup.

Pour moi le validationgroup ne servait que lorsque l'on avait par exemple plusieurs formulaires dans une page ...
C'est surtout pour associer des champs (et validators) à un bouton quoi ... (dans mon cas).

Merci beaucoup pour ton aide.