DaniloTec 0 Denunciar post Postado Julho 27, 2009 Boa tarde gente. Fiz uma classe para formulário com os controles que serão mais usados no sistema. Dentre eles, tenho um controle do tipo DropDownList que carrega os processos de contratação. Segue o método que cria o DDL: public DropDownList ddlTipoProcesso(){ string[] tipoProcessoText = new string[] { "Interno", "Externo", "Misto" }; DropDownList ddlTipoProcesso = new DropDownList(); ddlTipoProcesso.ID = "ddlTipoProcesso"; ddlTipoProcesso.DataSource = tipoProcessoText; ddlTipoProcesso.DataBind(); ddlTipoProcesso.Items.Insert(0, new ListItem("Selecione...", "")); return ddlTipoProcesso; } Ele cria certinho, mas quando eu coloco um DDL no aspx e copio o controle do método para ele não dá certo: ddlProcesso.Controls.Add(objForm.ddlTipoProcesso()); O erro é:'System.Web.UI.WebControls.DropDownList' does not allow child controls. Como eu coloco o controle que eu criei na classe na página aspx? Vlw! Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 27, 2009 O que é esse ddlProcesso?? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Julho 27, 2009 Danilo pela nomeclatura que você postou esse ddlProcesso deve ser um dropdownlist, é? e um drop não aceita adicionar um controle a ele. Então pra adicionar você tem que fazer assim NomeDoSeuWebForm form.Controls.Add(ddlTipoProcesso()); Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 28, 2009 É um DropDownList sim. Já tinha tentado isso, Ivan e funciona. O problema é que quando eu adiciono um controle a uma Label, por exemplo, eu não consigo criar um RequiredFieldValidator para este controle, entende? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 28, 2009 Não consegui entender, você quer adicionar um DropDownList dentro de outro? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 28, 2009 Sim, na verdade estou tentando fazer com que um controle RequeredFieldValidator reconheça o controle ddlProcesso. Se eu criar o objeto Formulário e chamar o método ddlProcesso() ele cria o controle, mas não atrela o RequeredFieldValidator para ele. É como se não houvesse esse controle na página aspx, entende? []'s Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 29, 2009 Mas eu não consigo entender o que tem a ver o código que você postou com o RequeredFieldValidator. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 29, 2009 Este ddlProcesso que eu criei em uma classe acrescenta um DropDonwList com as opções de processos no formulário de cadastro. O ddlProcesso deste cadastro é de preenchimento obrigatório e por isso coloquei o RequeredFieldValidator. Mas o RequeredFieldValidator não funciona, porque não existe o DropDonwList de processo na aspx. O DropDonwList de processo está na classe e só aparece no código cs quando eu adiciono o controle em uma td, por exemplo. tdProcesso.Controls.Add(ddlProcesso()); O RequeredFieldValidator não reconhece o DropDonwList de processo, ou seja o ddlProcesso. Entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
Ivan.Teles 23 Denunciar post Postado Julho 29, 2009 Acho que já saquei sua dúvida, na verdade o dropdownlis esta sendo adicionado dinamicamente e ao tentar colocar um RequeredFieldValidator ele não encontra o drop pq ainda não foi adicionado, é isso? Se for, creio que você resolve seu problema adicionando o RequeredFieldValidator dinamicamente também! Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Julho 30, 2009 Legal, funcionou! Crio os dois dinamicamente e atribuo os controles em Labels diferentes. Ficou assim na classe Formulario: private string _idRfv; private string _idControle; private string _msgErro; private string IdRfv{ get { return this._idRfv; } set { this._idRfv = value; } } private string IdControle { get { return this._idControle; } set { this._idControle = value; } } private string MsgErro { get { return this._msgErro; } set { this._msgErro = value; } } public RequiredFieldValidator rfv(string idRfv, string idControle, string msgErro) { this.IdRfv = idRfv; this.IdControle = idControle; this.MsgErro = msgErro; RequiredFieldValidator rfvProcesso = new RequiredFieldValidator(); rfvProcesso.ControlToValidate = this.IdControle; rfvProcesso.ErrorMessage = this.MsgErro; rfvProcesso.ID = this.IdRfv; return rfvProcesso; } Depois eu atribuo os controles: //CERREGA OS CONTROLES DO FORMULÁRIO Formulario objForm = new Formulario(); lblProcesso.Controls.Add(objForm.ddlTipoProcesso()); lblDepartamento.Controls.Add(objForm.ddlDepartamento()); lblEscolaridade.Controls.Add(objForm.ddlEscolaridade()); //CARREGA OS CONTROLES DE VALIDAÇÃO PARA O TIPO PROCESSO lblRfvProcesso.Controls.Add(objForm.rfv("rfvProcesso", "ddlTipoProcesso", "*")); lblRfvDepartamento.Controls.Add(objForm.rfv("rfvDepartamento", "ddlDepartamento", "*")); Eu estou utilizando o conceito de OOP e por isso gostaria da opinião de vocês sobre o que eu fiz. Estou seguindo os padrões corretos de OOP? Vlw gente! Compartilhar este post Link para o post Compartilhar em outros sites