<< Click to Display Table of Contents >> CustomValidator para validar email |
![]() ![]() ![]() |
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);
}