none
Validação de UserControl RRS feed

  • Pergunta

  • Bom dia!

       Criei um user control "Texto" que é um textbox aperfeiçoado com funcionalidades para facilitar o desenvolvimento. O problema é que não consigo usar os Validations para validar os dados digitados no campo. Criei a propriedade "ValidationGroup" e mesmo assim ele não aparece na lista "ControlToValidate" de um Validator.

            /// <summary>
            ///     Propriedade ValidationGroup do campo
            /// </summary>
            public string ValidationGroup
            {
                get { return this.txt.ValidationGroup; }
                set { this.txt.ValidationGroup = value; }
            }

      A duvida é, preciso setar alguma outra propriedade? Qual?    ou    Preciso herdar alguma classe?? Qual classe??


    Obrigado!
    sábado, 10 de abril de 2010 14:03

Respostas

  • Olha amigo. Eu tenho alguns componentes que construí para uso próprio, porém, ele herdou de um Literal, e Literal não pode ser utilizado com Validations. Porém, resolvi criar um TextBox Custom aqui, sem rotina alguma, para testar.

    Após adicionar o componente em um websitem simples, joguei um RequiredFieldValidator e meu componente apareceu na lista corretamente, validando-o sem a necessidade de algum código ou classe.

     

    Segue:

    using System;
    using System.ComponentModel;
    using System.Security.Permissions;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Text;
    [assembly: TagPrefix("CustomTextBox.Controls", "txtTextBox")]
    
    namespace txtTextBox
    {
        #region Configuração do Componente
        [System.Drawing.ToolboxBitmap("C:\\Projetos\\Icones\\ICO.png")]
        [
            AspNetHostingPermission(SecurityAction.Demand,
            Level = AspNetHostingPermissionLevel.Minimal),
            AspNetHostingPermission(SecurityAction.InheritanceDemand,
            Level = AspNetHostingPermissionLevel.Minimal),
            DefaultProperty("TextBox"),
            ToolboxData("<{0}:txtTextBox runat=\"server\"> </{0}:txtTextBox>")
        ]
        #endregion
    
        #region TextBox
        public class txtTextBox : TextBox
        {
            [
            Bindable(false),
            Category("Appearance"),
            Description("teste texbox"),
            DefaultValue("null"),
            Localizable(true),
            ]
    
    public String Text
            {
                get
                {
                    string Text = (string)ViewState["Text"];
                    return (Text == null) ? String.Empty : Text;
                }
                set
                {
                    ViewState["Text"] = value;
                }
            }
    
            protected override void Render(HtmlTextWriter writer)
            {
                writer.Write(Text);
            }
        }
        #endregion
    }
    

    Ph - Gambi.NET® Framework Certificated 2010
    • Marcado como Resposta Harley Araujo terça-feira, 13 de abril de 2010 21:44
    segunda-feira, 12 de abril de 2010 14:12

Todas as Respostas

  • Amigo, vc precisa fazer a validação no user control e n na pagina que vc utiliza ele.
    Se ajudar, não esqueça que você pode votar como útil. :D
    domingo, 11 de abril de 2010 16:51
  • Olha amigo. Eu tenho alguns componentes que construí para uso próprio, porém, ele herdou de um Literal, e Literal não pode ser utilizado com Validations. Porém, resolvi criar um TextBox Custom aqui, sem rotina alguma, para testar.

    Após adicionar o componente em um websitem simples, joguei um RequiredFieldValidator e meu componente apareceu na lista corretamente, validando-o sem a necessidade de algum código ou classe.

     

    Segue:

    using System;
    using System.ComponentModel;
    using System.Security.Permissions;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Data;
    using System.Text;
    [assembly: TagPrefix("CustomTextBox.Controls", "txtTextBox")]
    
    namespace txtTextBox
    {
        #region Configuração do Componente
        [System.Drawing.ToolboxBitmap("C:\\Projetos\\Icones\\ICO.png")]
        [
            AspNetHostingPermission(SecurityAction.Demand,
            Level = AspNetHostingPermissionLevel.Minimal),
            AspNetHostingPermission(SecurityAction.InheritanceDemand,
            Level = AspNetHostingPermissionLevel.Minimal),
            DefaultProperty("TextBox"),
            ToolboxData("<{0}:txtTextBox runat=\"server\"> </{0}:txtTextBox>")
        ]
        #endregion
    
        #region TextBox
        public class txtTextBox : TextBox
        {
            [
            Bindable(false),
            Category("Appearance"),
            Description("teste texbox"),
            DefaultValue("null"),
            Localizable(true),
            ]
    
    public String Text
            {
                get
                {
                    string Text = (string)ViewState["Text"];
                    return (Text == null) ? String.Empty : Text;
                }
                set
                {
                    ViewState["Text"] = value;
                }
            }
    
            protected override void Render(HtmlTextWriter writer)
            {
                writer.Write(Text);
            }
        }
        #endregion
    }
    

    Ph - Gambi.NET® Framework Certificated 2010
    • Marcado como Resposta Harley Araujo terça-feira, 13 de abril de 2010 21:44
    segunda-feira, 12 de abril de 2010 14:12