DaniloTec 0 Denunciar post Postado Junho 10, 2009 Bom dia gente. O sistema que estou desenvolvendo possui dezenas de formulários e muitos destes formulários possuem campos repetidos, por exemplo um dropdownlist de estados. Criei uma classe para os formulários e nela eu crio um método ddlEstado e chamo-o toda vez que precisar mostra-lo na página. public DropDownList ddlEstado() { string[] estados = new string[] { "","AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "RJ", "PA", "PB", "PE", "PI", "PR", "RN", "RO", "RR", "RS", "SC", "SP" }; DropDownList ddlEstado = new DropDownList(); ddlEstado.CssClass = "form1"; ddlEstado.ID = "ddlEstado"; ddlEstado.DataSource = estados; ddlEstado.DataBind(); return ddlEstado; }E chamo dessa forma: Formulario objForm = new Formulario(); lblEstado.Controls.Add(objForm.ddlEstado());Até aí tudo bem. O problema é que existe um formulário de cadastro onde se o usuário já tiver o cadastro preenchido o formulário é carregado com as informações dele e eu não consigo chamar o objeto ddlEstado.SelectValue na página para atribuir o valor.Como eu faço manipular os values do ddl quando ele está em uma classe? Vlw! Compartilhar este post Link para o post Compartilhar em outros sites
yslladd 0 Denunciar post Postado Junho 10, 2009 Fala aí, se entendi bem você quer exibir o valor que o usuario se cadastrou, porem dando a chance dele modificar o mesmo. Se for isso segue o codigo: ListItem li; li = ddlt02_cd_usuario.Items.FindByValue("campodobanco"); if (li != null) li.Selected = true;você poem isso na sua classe, assim sempre que for editar, você vai recuperar o valor cadastrado. Abraço e sucesso! Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Junho 12, 2009 Então, Yslladd. Não consegui fazer isso na classe por 2 motivos: 1 - Na classe eu não consigo enxergar o DataReader com o nome do campo; 2 - Apesar do dropdownlist ter um id eu não consigo utilizar na página, pelo fato de ele estar em uma classe. Se eu colocasse o controle dentro da página funcionaria numa boa, o problema é que vou ter uns 8 ou 9 formulários com este campo e seria ótimo tê-lo num único lugar e poder só chamar o método que o constrói. Vlw! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Ted k' 126 Denunciar post Postado Junho 13, 2009 coloca ele dentro de namespaces Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Junho 14, 2009 Você já tentou assim? Formulario objForm = new Formulario(); DropDownList ddl = objForm.ddlEstado(); ddl.SelectedValue = "SC"; lblEstado.Controls.Add(ddl); Compartilhar este post Link para o post Compartilhar em outros sites
DaniloTec 0 Denunciar post Postado Junho 25, 2009 coloca ele dentro de namespaces :( Você já tentou assim? Formulario objForm = new Formulario(); DropDownList ddl = objForm.ddlEstado(); ddl.SelectedValue = "SC"; lblEstado.Controls.Add(ddl); Oenning, quando eu faço isso ele exibe o seguinte erro:Multiple controls with the same ID 'ddlEstado' were found. FindControl requires that controls have unique IDs. No page load eu já carrego o controle: Formulario objForm = new Formulario(); lblEstado.Controls.Add(objForm.ddlEstado(""));Passo vazio como parâmetro porque pode ser a primeira vez que o usuário está acessando a página, ou seja, não tem nada cadastrado no banco de dados.Mas caso ele já possua um cadastro eu seleciono o valor na base e preciso atribuir no DDL: Formulario objForm = new Formulario(); lblEstado.Controls.Add(objForm.ddlEstado(dr["campoEstado"].toString()));E é aí que ele diz que não pode ter dois ou mais controles com o mesmo id, entende? Compartilhar este post Link para o post Compartilhar em outros sites