[ASP.NET] UpdatePanel+ Validator +redirect = BOUM

Statut
N'est pas ouverte pour d'autres réponses.

k o D

Elite
Bonjour...

Je suis actuellement (en fait depuis 4 jours :dead:) en train de coder une page d'inscription de joueurs...

Alors voici le problème:

J'ai un updatePanel indispensable dans mon formulaire, j'ai également des validator sur certains champs. Je sais que ces validator's ne peuvent pas fonctionner côté client avec l'update panel et c'est pourquoi j'ai rajouté le EnableClientScript="false" à tout mes validator's.

Tout fonctionnait parfaitement jusqu'au moment où j'ai rajouté cette ligne dans la fonction click de mon bouton:
Response.Redirect("ajoutMembre2.aspx");

Et là et bien tout simplement il ne tient plus compte des validator, il passe directement à la page... :aie:
J'ai bien sûr essayé le Response.Redirect("ajoutMembre2.aspx", false/true); mais rien ne change.

aspx:

Code:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ajoutMembre.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <fieldset>
        <legend>Inscription d'un joueur (Etape 1/2)</legend>
        <div class="flottantDroite">
            <asp:UpdateProgress ID="UpdateProgress1" runat="server" >
                <ProgressTemplate>
                    <img src="img/barre.gif" alt="Connexion..."/><br />
                    Connexion serveur... patientez svp.
                </ProgressTemplate>
            </asp:UpdateProgress>
        </div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div class="centrer">
                    <asp:Label id="Label1" runat="server" CssClass="label" Text="Pseudo* :"></asp:Label> 
                    <asp:TextBox id="pseudo" runat="server" CssClass="input" AutoPostBack="true" OnTextChanged="checkPseudo"></asp:TextBox> 
                    <asp:Image id="ko" runat="server" CssClass="erreurImg" Visible="False" ImageUrl="~/img/ko.png"></asp:Image> 
                    <asp:Image id="ok" runat="server" CssClass="erreurImg" Visible="False" ImageUrl="~/img/ok.png"></asp:Image> 
                    <asp:Label id="ErreurPseudo" runat="server" CssClass="erreurMsg" Width="140px"></asp:Label> <br /><br />
                    <asp:Label id="Label2" runat="server" CssClass="label" Text="Password* :"></asp:Label> 
                    <asp:TextBox id="password" runat="server" CssClass="input" TextMode="Password"></asp:TextBox> 
                    <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" CssClass="erreurCombo" Width="167px" EnableClientScript="false" 
                        ForeColor="Transparent" SetFocusOnError="True" ErrorMessage="Password requis!" ControlToValidate="password"></asp:RequiredFieldValidator> 
                    <asp:RegularExpressionValidator id="RegularExpressionValidator2" runat="server" CssClass="erreurCombo" Width="165px" EnableClientScript="false" 
                        ForeColor="Transparent" SetFocusOnError="True" ErrorMessage="4 à 32 caractères!" ControlToValidate="password" ValidationExpression="^.{4,32}$"></asp:RegularExpressionValidator><br /><br />
                    <asp:Label id="Label3" runat="server" CssClass="label" Text="Email* :"></asp:Label> 
                    <asp:TextBox id="email" runat="server" CssClass="input"></asp:TextBox> 
                    <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" CssClass="erreurCombo" Width="164px" EnableClientScript="false" 
                        ForeColor="Transparent" SetFocusOnError="True" ErrorMessage="Forme: x@x.x" ControlToValidate="email" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator> 
                    <asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" CssClass="erreurCombo" Width="163px" EnableClientScript="false" 
                        ForeColor="Transparent" SetFocusOnError="True" ErrorMessage="Email requis!" ControlToValidate="email"></asp:RequiredFieldValidator><br /><br />
                    <asp:Button id="inscription" runat="server" Text="Inscription" Enabled="false" OnClick="inscription_Click"></asp:Button> 
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
    </fieldset>
</asp:Content>
aspx.cs:

Code:
protected void inscription_Click(object sender, EventArgs e)
    {
        Joueurs joueur = new Joueurs();
        joueur.setAcces(0);
        joueur.setEmail(email.Text);
        string passwordMD5 = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text, "md5");
        joueur.setPassword(passwordMD5);
        joueur.setPseudo(pseudo.Text);
        DateTime today = DateTime.Now;
        string jourM = ""+today.Day;
        if (jourM.Length < 2)
            jourM = "0" + today.Day;
        joueur.setDateInscription(today.Year+"-"+today.Month+"-"+jourM);
        Joueurs.ajouter(joueur);
        Session["joueur"] = joueur;
        //Response.Redirect("ajoutMembre2.aspx");
    }
Merci d'avance !
 
1er
OP
k o D

k o D

Elite
J'ai obtenu la réponse...

C'est stupide en fait... il suffit dans mon CS de tester Page.isValid...
Et voilà :-'
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut