none
RequiredFieldValidator não funciona na minha pagina RRS feed

  • Pergunta

  • Galera,

    Estou com problema no required

    Tenho a minha Pagina de CadastroProcesso.aspx que tem um UserControl e um button

    <%@ Page Title="" Language="C#" MasterPageFile="~/_Master/Sancoes.Master" AutoEventWireup="true"
        CodeBehind="CadastroProcesso.aspx.cs" Inherits="Sancoes.AspX.CadastroProcesso" %>
    
    <%@ Register Src="~/WUC/WUC_NumeracaoGDOC.ascx" TagName="WUCNumeracaoGDOC" TagPrefix="uc1" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    
        <uc1:WUCNumeracaoGDOC ID="WUCNumeracaoGDOC" runat="server" />
        <asp:Button ID="btnEnviar" runat="server" Text="Enviar" OnClick="btnEnviar_Click" />
        
    </asp:Content>
    

    nesse UserControl tenho o RequiredFieldValidator

    Parte ascx

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WUC_NumeracaoGDOC.ascx.cs" Inherits="Sancoes.WUC.WUC_NumeracaoGDOC" %>
    <%@ Register src="~/WUC/WUC_Texbox.ascx" tagname="WUCTexbox" tagprefix="uc1" %> 
    
    <asp:Panel ID="pnlParcelas" runat="server" GroupingText="Nº GDOC?" >
        
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
            <ContentTemplate>
                <table>
                    <tr>
                        <td>
                            <asp:RadioButton ID="rbSim" runat="server" Text="Sim" GroupName="Grupo"  oncheckedchanged="rbSim_CheckedChanged" AutoPostBack="True"/>
                            <asp:RadioButton ID="rbNao" runat="server" Text="Não" GroupName="Grupo" oncheckedchanged="rbNao_CheckedChanged" AutoPostBack="True"/>
                        </td>
                        <td>
                            <asp:TextBox ID="txtNumero" runat="server" />
                            <asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="txtNumero" Display="Dynamic" ValidationGroup="Submit"/>
                        </td>
                    </tr>
                    <tr >
                        <td colspan="2">
                            <asp:Button ID="btnValidaNumeroGDOC" runat="server" Text="Validar Nº GDOC" onclick="btnValidaNumeroGDOC_Click" ValidationGroup="Submit" CausesValidation="True" />
                        </td>
                    </tr>
                </table>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="rbSim" EventName="CheckedChanged" />
                <asp:AsyncPostBackTrigger ControlID="rbNao" EventName="CheckedChanged" />
            </Triggers>
        </asp:UpdatePanel>
    </asp:Panel>
    

    Parte CS

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using BEC.BS.SANCOES;
    
    namespace Sancoes.WUC
    {
        public partial class WUC_NumeracaoGDOC : System.Web.UI.UserControl
        {
            #region Propriedades
    
            private string _numeroGDOC;
            public string NumeroGDOC
            {
                get { return _numeroGDOC; }
                set { _numeroGDOC = value; }
            }
    
            private Boolean _validado;
            public Boolean Validado
            {
                get { return _validado; }
                set { _validado = value; }
            }
    
            #endregion
    
            #region Métodos
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if(!IsPostBack)
                {
                    rbNao.Checked = true;
                    btnValidaNumeroGDOC.Enabled = false;
                }
            }
    
            protected void btnValidaNumeroGDOC_Click(object sender, EventArgs e)
            {
                BS_Processo bs = new BS_Processo();
    
                if (bs.ExisteNumeroGDOC(txtNumero.Text) == true)
                {
                    NumeroGDOC = txtNumero.Text;
                    rfv.ErrorMessage = "Processo Válido";
                    rfv.Validate();
                }
                else if (bs.ExisteNumeroGDOC(txtNumero.Text) == false)
                {
                    txtNumero.Text = string.Empty;
                    rfv.ErrorMessage = "Processo Inválido ou não Encontrado no Banco de Dados";
                    rfv.Validate();
                }
                else if (txtNumero.Text == string.Empty)
                {
                    rfv.ErrorMessage = "Campo Inválido, informe o número do processo";
                    rfv.Validate();
                }
    
               
            }
    
            protected void rbSim_CheckedChanged(object sender, EventArgs e)
            {
                btnValidaNumeroGDOC.Enabled = true;
            }
    
            protected void rbNao_CheckedChanged(object sender, EventArgs e)
            {
                btnValidaNumeroGDOC.Enabled = false;
            }
    
            #endregion
        }
    }

    O meu problema é no botão btnValidaNumeroGDOC_Click

    Quando eu não preencho o text o evento do button nem é disparado

    Quando eu digito algum numero que é invalido o evento é realmente disparado e verifica se realmente existe no banco

    Quando eu digito algum numero valido o evento é realmente é disparado porém não aparece a mensagem.

    Pode ser que eu esteja usando errado o RequiredFieldValidator

    Alguém da uma ajuda?

    sexta-feira, 20 de setembro de 2013 20:41

Respostas

  • Algumas considerações.

    1 - O Required field Validator só deve ser utilizado para verificar se o campo foi preenchido, ou seja ele obriga o preenchimento do campo.

    Você está tentando utiliza-lo para outras funções. Nesses casos existe o Custon validator: Veja como utilizar esse controle: https://sites.google.com/site/thiagonegherbon/tutoriais/como-utilizar-customvalidator

    2 - Coloque a mensagem na propriedade ErrorMessage do controle. Direto no aspx. Ex: 

    <asp:RequiredFieldValidator ID="rfv" runat="server" ControlToValidate="txtNumero" Display="Dynamic" ValidationGroup="Submit" ErrorMessage="Preencha o campo Número." />



    http://samuelcazelli.blogspot.com/

    segunda-feira, 23 de setembro de 2013 16:32

Todas as Respostas