none
Mensagem de erro customizada em validation summary RRS feed

  • Pergunta

  • Boa Tarde Amigos!

    Estou precisando incluir mensagens customizadas dentro de um validation summary, antes de mais nada vou postar aqui para vocês verem.

    wucLogin

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="wucLogin.ascx.cs" Inherits="Cronos.UserControl.wucLogin" %>
    <asp:ValidationSummary ID="vsLogin" runat="server" ValidationGroup="Login" CssClass="ValidationSummary" />
    <div class="LabelLogin">
        <asp:Label ID="lblLogin" runat="server" Text="Usuário" AssociatedControlID="txtLogin" />
        <br />
        <asp:TextBox ID="txtLogin" runat="server" ToolTip="Informe seu Login" AccessKey="U"></asp:TextBox><asp:RequiredFieldValidator
            ID="rfvObrigatorioUsuario" runat="server" ErrorMessage="Favor Informar seu Usuário"
            ControlToValidate="txtLogin" ValidationGroup="Login" CssClass="validacao">*</asp:RequiredFieldValidator>
    </div>
    <div class="LabelLogin">
        <asp:Label ID="lblSenha" runat="server" Text="Senha" AssociatedControlID="txtSenha" />
        <br />
        <asp:TextBox ID="txtSenha" runat="server" ToolTip="Informe sua Senha" TextMode="Password"
            AccessKey="S"></asp:TextBox>
        <asp:RequiredFieldValidator ID="rfvObrigatorioSenha" runat="server" ErrorMessage="Favor Informar sua Senha"
            ControlToValidate="txtSenha" ValidationGroup="Login" CssClass="validacao">*</asp:RequiredFieldValidator>
    </div>
    <span class="spanLembraSenha">
        <asp:HyperLink ID="hyEsqueceuSenha" runat="server" NavigateUrl="nova_senha.aspx"
            AccessKey="E">Esqueçeu sua senha?</asp:HyperLink></span>
    <asp:Button ID="btnLogar" runat="server" Text="Logar" ValidationGroup="Login" OnClick="btnLogar_Click" />



    e o meu .cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Configuration;
    using System.Web.Security;
    using Helpers;
    
    namespace Cronos.UserControl
    {
        public partial class wucLogin : System.Web.UI.UserControl
        {
            #region .: Eventos :.
            /// <summary>
            /// Evento que carrega no load da pagina
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    Page.Title = ConfigurationManager.AppSettings["TITLE_INTRANET"] + " - Login";
                }
            }
            /// <summary>
            /// Evento acionado quando se clica no botão de logar
    
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnLogar_Click(object sender, EventArgs e)
            {
                LogaUsuario(txtLogin.Text, txtSenha.Text);
            }
    
            #endregion
    
    
            #region .: Métodos :.
            /// <summary>
            /// Métodos responsável por receber o login e senha do usuário e efetuar a autenticação junto ao membership
            /// </summary>
            /// <param name="strLogin">Login do usuário</param>
            /// <param name="strSenha">Senha do usuário</param>
            private void LogaUsuario(string strLogin, string strSenha)
            {
                if (Page.IsValid)
                {
                    try
                    {
                        if (Membership.ValidateUser(strLogin, strSenha))
                        {
                        }
                        else
                        {
    				// erro de acesso exibir no validation summary
                        }
                    }
                    catch (Exception ex)
                    {
                        // Erro de exception tem q exibir no validationsummary
                        
                    }
                }
            }
            #endregion
        }
    }

    Gostaria de saber como posso fazer para essas mensagem aparecerem no validation summary.

    Fico no aguardo de alguma posição.

    Obrigado!


    "Nunca deixe que os outros te subestimen, mas tambem não seja arrogante seja humilde e prove quem é

    sexta-feira, 4 de janeiro de 2013 17:58

Respostas

Todas as Respostas

  • Atila,

    Eu nunca cheguei a fazer isso, mais olhando na internet existe de duas técnicas. Uma delas consiste em criar seu próprio validador e adicionar na propriedade "Validators" da classe Page o erro, veja:

    public class ValidationError : IValidator
    {
        private ValidationError(string message)
        {
            this.ErrorMessage = message;
        }
    
        public void Validate()
        {
            this.IsValid = false;
        }
    }
    
    
    //Aqui já seria na sua pagina quando você quiser colocar um erro Custom
    this.Page.Validators.Add(new ValidationError("Meu erro"));

    A segunda consiste em instancia o controle CustomValidator e já deixar seus status de validade como falso, e adicionar novamente na propriedade "Validators" da classe Page:

    CustomValidator val = new CustomValidator();
    
    val.IsValid = false;
    val.ErrorMessage = "Meu erro";
    
    this.Page.Validators.Add(val);

    Referencia:
    http://blog.webmastersam.net/post/Adding-custom-error-message-to-ValidationSummary-without-validators.aspx
    http://blogs.msdn.com/b/simonince/archive/2008/02/28/adding-messages-to-a-validation-summary.aspx

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Atila Rampazo domingo, 6 de janeiro de 2013 15:31
    sexta-feira, 4 de janeiro de 2013 23:37
  • Vitor, não deu acerto o validation summary não apareçeu a mensagem.

    Fiz dessa maneira

            private void LogaUsuario(string strLogin, string strSenha)
            {
                if (Page.IsValid)
                {
                    try
                    {
                        if (Membership.ValidateUser(strLogin, strSenha))
                        {
                            Response.Redirect("~/painel/Default.aspx");
                        }
                        else
                        {
                            CustomValidator val = new CustomValidator();
    
                            val.IsValid = false;
                            val.ErrorMessage = "Informe um Login Válido";
    
                            this.Page.Validators.Add(val);
                        }
                    }
                    catch (Exception ex)
                    {
                        CustomValidator val = new CustomValidator();
    
                        val.IsValid = false;
                        val.ErrorMessage = ex.Message;
    
                        this.Page.Validators.Add(val);
                    }
                }
            }


    "Nunca deixe que os outros te subestimen, mas tambem não seja arrogante seja humilde e prove quem é

    segunda-feira, 7 de janeiro de 2013 13:45