CustomValidator para validar email

<< Click to Display Table of Contents >>

Navigation:  ASP.NET > Dicas avançadas >

CustomValidator para validar email

Previous pageReturn to chapter overviewNext page

Default.aspx

 

  <h1>Digite seu email para receber a senha</h1>

  <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

 

  <asp:UpdatePanel ID="UpdatePanel1" runat="server">

      <ContentTemplate>

 

              <asp:TextBox ID="txtEmail" runat="server" Width="220px"></asp:TextBox>

 

              <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Email inválido"

                  ValidateEmptyText="True" SetFocusOnError="True" ControlToValidate="txtEmail"

                  CssClass="texto_erro" OnServerValidate="CustomValidator1_ServerValidate"></asp:CustomValidator>

 

              <asp:Button ID="btnEsqueci" runat="server" OnClick="btnEsqueci_Click" Text="Receber a senha" />

      </ContentTemplate>

  </asp:UpdatePanel>

 

 

O update panel é para não piscar todo o site

O CustomValidator vai executar o evento ServerValidate que usa uma expressão regular (neste caso para validar email) e retornar no args.IsValid

Note que mesmo assim, no Click do botão é necessário verificar o CustomValidator1.IsValid.

 

Default.aspx.cs

 

      protected void btnEsqueci_Click(object sender, EventArgs e)

       {

          // Atenção aqui!

          if (CustomValidator1.IsValid)

              // é válido, segue adiante indo para outra página...

       }

 

      protected void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)

       {

          Regex Rgx = new Regex(@"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");

           args.IsValid = Rgx.IsMatch(txtEmail.Text);

       }