asp.net 0 Denunciar post Postado Janeiro 12, 2006 Galera bom dia, Como faço para popular um DropDownList que encontra-se numa página utilizando como Datasource um DataReader que encontra-se em uma classe. A situação é a seguinte: Classe usuario: '////////////////// função para carregar o tipo do usuario Public Function carrega_tipo() As Odbc.OdbcDataReader Try With cmd .fc_comando("Select tp_usuario.tipo, tp_usuario.id from tp_usuario", 1) dt = .fc_consulta(2) End With Catch ex As Exception End Try Return dt End Function Classe advogado: (Herda da classe usuario) Public Class cl_advogado : Inherits cl_usuario Página aspx '/////////////////////// Importo a classe advogado Imports advogaweb.cl_advogado '////////////////////// Crio uma nova instancia para a classe advogado Private novo_adv As New cl_advogado '////////////////////// No page_load da página chamado uma função para carregar '////////////////////// um dropdownlist utilizando com DataSource um DataReader '////////////////////// que no caso recebe o resultado da função da classe usuario '////////////////////// que acessa o banco e retorna o DataReader Function carrega_novo() lb_data.Text = Date.Now.ToShortDateString '////////////////////// Nesta linha abaixo é onde jogo para dentro do DataReader '////////////////////// desta página o resultado da consulta feito na classe usuario dt = novo_adv.carrega_tipo ddl_tipo.DataSource = dt ddl_tipo.DataValueField = ID ddl_tipo.DataTextField = tipo ddl_tipo.DataBind() End Function Só que o problema é que já no próprio Vs.net ele diz que tipo não foi declarado. Tipo é uma das colunas da consulta ao banco, como posso fazer referencia a esta coluna da tabela que está numa função dentro de uma classe à qual é herdade por uma segunda classe (cl_advogado) e que por fim executa a função? Compartilhar este post Link para o post Compartilhar em outros sites
Tiago Colombo 0 Denunciar post Postado Janeiro 12, 2006 Olá, primeiramente, não vi no seu código a declaração do objeto DataReader, no caso você chamou de "dt", segundo: as propriedades DataValueField e DataTextField devem ser informadas através de tipos de dados string, ou seja, "ID" e "tipo". Espero que ajude, Compartilhar este post Link para o post Compartilhar em outros sites
asp.net 0 Denunciar post Postado Janeiro 12, 2006 Eu naum coloquei o código completo para economizar. Agora se eu fizer da maneira que você falou ele não gera erro, mas também o dropdownlist fica vazio. Compartilhar este post Link para o post Compartilhar em outros sites
Rico_araujo 0 Denunciar post Postado Janeiro 24, 2006 Uma dica.. Eu uso dataset tipado para encher dropdownlistfaço da seguinte forma: Crio um aquivo do tipo dataSet .xsd, la transfiro todas as tabela que me enteressam.salvo com um nome qualquer .. por exemplo DsTestedepois crio uma classe com um metodo que retorna um dataset desse tipo.. por exemplo.public class config {public static DsTeste CarregaGrupo() { OleDbConnection Cnn = new OleDbConnection(string de conexao); try { //adapter OleDbDataAdapter DaGrupo = new OleDbDataAdapter(); // data set DsTeste DsGrupo = new DsTeste(); // command OleDbCommand cmd = new OleDbCommand("",Cnn); cmd.CommandText="select * from grupos"; DaGrupo.SelectCommand=cmd; Cnn.Open(); DaGrupo.Fill(DsGrupo.grupos); return DsGrupo; } finally { Cnn.Close(); } }}//depois eu vou no arquivo aspx que eu quero popular a combo e e faço issoprivate void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { //carrega o grupo DsTeste DsGrupo = config.CarregaGrupo(); dplGrupo.DataSource=new DataView(DsGrupo.grupos); dplGrupo.DataTextField="grupo"; dplGrupo.DataValueField="id_group"; dplGrupo.DataBind();}}// seu drop downlista vai ficar populado na boa, com apenas algumas linhas de codigo Compartilhar este post Link para o post Compartilhar em outros sites