none
Adicionar Itens no meu DropDownlist em C# RRS feed

  • Pergunta

  • Tenho a seguinte linha de comando abaixo:

     string _connectionString = WebConfigurationManager.ConnectionStrings["CONNECTIONSTRING"].ConnectionString;

                DropDownList DropDownListCODAREA = (DropDownList)FormView1.FindControl("DropDownListCODAREA");
                DropDownList DropDownListCODSUB = (DropDownList)FormView1.FindControl("DropDownListCODSUB");

                string _strSQL03 = "SELECT CODAREA,CODSUB,CC FROM  WHERE CODAREA = '" + DropDownListCODAREA.Text + "'";
                SqlConnection con03 = new SqlConnection(_connectionString);
                SqlCommand cmd03 = new SqlCommand(_strSQL03, con03);
                cmd03.CommandType = CommandType.Text;
                using (con03)
                {
                    con03.Open();
                    SqlDataReader dr03 = cmd03.ExecuteReader();
                    if (dr03.Read())
                    {
                        ABAIXO EU SO ADICIONO UM ITEM APENAS E EU QUERO ADICIONAR TODOS CONFORME ORIENTAÇÃO ABAIXO EM NEGRITO
                        //DropDownListCODSUB.Text = (string)dr03["CODSUB"];

                        AQUI EU GOSTARIA DE ADICIONAR OS ITENS DE ACORDO COM MEU SELECT ACIMA, MAS ANTES SEMPRE LIMPANDO

                          MEU DROPDOWNLISTCODSUB.

                         COMO FAÇO ISSO ?

                    }
                    else
                    {
                        DropDownListCODSUB.Text = "";
                    }
                    dr03.Close();
                    con03.Close();

    segunda-feira, 30 de julho de 2012 17:29

Respostas

  • A propriedade AppendDataBoundItems do DropDownList deve estar como true.

    DropDownListCODSUB.Items.Insert (0, new ListItem,(dr03["CODSUB"].toString(), "0");
    Esse código gera algum erro em sua aplicação ?



    Se a sugestão resolver o problema, favor marcar como Resposta.

    • Marcado como Resposta ricardoti2012 quarta-feira, 1 de agosto de 2012 14:52
    segunda-feira, 30 de julho de 2012 18:05

Todas as Respostas

  • ddlEstado.Items.Insert(0,new ListItem("Selecione..", ""));


    Se a sugestão resolver o problema, favor marcar como Resposta.

    segunda-feira, 30 de julho de 2012 17:43
  • ESTOU TENTANDO DESSA FORMA MAS NÃO ESTA DANDO CERTO

    DropDownListCODSUB.Items.Insert (0, new ListItem,((string)dr03["CODSUB"]),"");

    COMO RESOLVER ?

    OUTRA COISA TEM QUE TER UM LOOP PARA ADICIONAR TODOS OS ITENS DO SELECT FEITO ACIMA.

    AGUARDO RETORNO.

    OBRIGADO.

    segunda-feira, 30 de julho de 2012 17:54
  • vc não precisa adicionar itens assim se vc tem um select já trazendo os dados vc precisa apenas exibi-los assim

    gridviews1.DatatextField = "campo com a descrição";

    gridviews1.DataValueField = "campo id da sua tabela";

    gridview1.databind();


    Junior

    segunda-feira, 30 de julho de 2012 18:04
  • A propriedade AppendDataBoundItems do DropDownList deve estar como true.

    DropDownListCODSUB.Items.Insert (0, new ListItem,(dr03["CODSUB"].toString(), "0");
    Esse código gera algum erro em sua aplicação ?



    Se a sugestão resolver o problema, favor marcar como Resposta.

    • Marcado como Resposta ricardoti2012 quarta-feira, 1 de agosto de 2012 14:52
    segunda-feira, 30 de julho de 2012 18:05
  • Paulo segue um exemplo de como pode ser feito o que deseja, no exemplo que fiz crio uma classe de Estado que será exibida no drop em seguida faço a consulta no BD e vínculo o list como datasource do drop fiz o exemplo com o SqlCE. 

    Segue o code:

     //Classe Estado e seus atributos
            class Estado
            {
                public int IdEstado { get; set; }
                public string NomeEstado { get; set; }
            }
    
            //Evento Page load do formulário
            protected void Page_Load(object sender, EventArgs e)
            {
                //Verifico se não é um postback
                if (!Page.IsPostBack)
                {
                    //chamo o método que carrega o drop...
                    CarregaDrop();
                }
            }
    
    
            //Método que carrega o drop
            private void CarregaDrop()
            {
                //Seto o texto que será exibido
                ddlEstados.DataTextField = "NomeEstado";
                //Seto o valor do drop que será o idestado
                ddlEstados.DataValueField = "IdEstado";
                //Vinculo o list retornado pelo método
                //como datasource do drop e ordeno pelo nome do estado
                ddlEstados.DataSource = ObterLista().OrderBy(x => x.NomeEstado).ToList();
                //bindo o drop
                ddlEstados.DataBind();
                //insiro o valor selecione na posição 0
                ddlEstados.Items.Insert(0, "Selecione...");
                //e marco a mesmo como index de seleção
                ddlEstados.SelectedIndex = 0;
            }
    
            //método que consulta o bd e me retorna
            //um list de estados
            private List<Estado> ObterLista()
            {
                //instância do list que será retornado
                var lista = new List<Estado>();
                //instância da conexão
                var conn = new SqlCeConnection(@"Data Source=|DataDirectory|\Exemplo.sdf");
                //comando sql ou seja a query a ser executada
                var sql = "SELECT * FROM Estado";
                //instância do comando onde passo a conexão e a string com sql
                var cmd = new SqlCeCommand(sql, conn);
                //abro conexão 
                conn.Open();
                //instância do leitor
                var leitor = cmd.ExecuteReader();
                //enquanto o leitor lê...
                while (leitor.Read())
                {
                    //instância do objeto que seja adicionado ao list
                    Estado estado = new Estado();
                    //vinculo os valores lidos do bd ao objeto
                    estado.IdEstado = Convert.ToInt32(leitor["IdEstado"]);
                    estado.NomeEstado = leitor["NomeEstado"].ToString();
                    //adiciono o objeto a lista
                    lista.Add(estado);
                }
                //fecho conexão 
                conn.Close();
                //retorno a lista
                return lista;
            }

    Abraços e espero ter ajudado!


     "Feliz aquele que transfere o saber e aprende o que ensina."(Cora Coralina)


    Pablo Batista Cardoso
    www.pablobatistacardoso.com.br
    pablobatistacardoso@hotmail.com

    • Sugerido como Resposta Rafa Santos terça-feira, 31 de julho de 2012 20:05
    segunda-feira, 30 de julho de 2012 18:23
  • Dessa forma esta carregando meu DropDownListCODSUB, mas esta carregando apenas um item.

    Preciso colocar um loop para que carregue todos os itens do campo CODSUB

                                          

    con03.Open();
                    SqlDataReader dr03 = cmd03.ExecuteReader();
                    if (dr03.Read())
                    {


                            DropDownListCODSUB.Items.Insert(0, new ListItem(dr03["CODSUB"].ToString(), "0"));
                    }
                    else
                    {
                        //DropDownListCODSUB.Text = "";
                    }
                    dr03.Close();
                    con03.Close();

    ALGUEM PODE ME AJUDAR ?


    • Editado ricardoti2012 terça-feira, 31 de julho de 2012 19:36 Falta de uma linha de comando
    terça-feira, 31 de julho de 2012 19:35
  • E preciso tambem que limpe os itens do meu DropDownListCODSUB antes do comando acima descrito.

    desde ja agradeço quem possa me ajudar.

    Aguardo retorno.

    Obrigado.

    • Marcado como Resposta ricardoti2012 quarta-feira, 1 de agosto de 2012 14:51
    • Não Marcado como Resposta ricardoti2012 quarta-feira, 1 de agosto de 2012 14:52
    terça-feira, 31 de julho de 2012 19:37