none
DropDownList salva o primeiro ID RRS feed

  • Pergunta

  • Pessoal, 

    Estou populando um DDL através de uma classe que pega os valores via DataSet. Até aqui tudo bem ...

    O problema é que quando vou salvar na base de dados, ele sempre salva o valor do 1º item da listagem. Quando faço o Submit com o Button, ele carrega novamente os itens do dropdownlist e salva o 1º Item. O que posso fazer para salvar de fato o item selecionado ?  

    Abaixo o meu código: 

            protected void Page_Load(object sender, EventArgs e)
            {
                FuncionarioDB funcionario = new FuncionarioDB();
    
                ddlMotorista.DataSource = funcionario.ListarMotoristas();
                ddlMotorista.DataTextField = "NOME";
                ddlMotorista.DataValueField = "RA_MAT";
                ddlMotorista.DataBind();
                
            }

    terça-feira, 7 de agosto de 2012 18:03

Respostas

  • Tenta assim:

    protected void Page_Load(object sender, EventArgs e)
            {
     if (!Page.IsPostBack)
                {
                FuncionarioDB funcionario = new FuncionarioDB();
    
                ddlMotorista.DataSource = funcionario.ListarMotoristas();
                ddlMotorista.DataTextField = "NOME";
                ddlMotorista.DataValueField = "RA_MAT";
                ddlMotorista.DataBind();
                }
                
            }

    Deve resolver seu problema!


     "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 Vitor Mendes terça-feira, 7 de agosto de 2012 18:37
    • Marcado como Resposta Pedro Xavier quinta-feira, 9 de agosto de 2012 12:14
    terça-feira, 7 de agosto de 2012 18:09
  • Cola aqui o código onde você recupera o ítem selecionado para salvar no banco, por favor.

    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto

    • Marcado como Resposta Pedro Xavier quinta-feira, 9 de agosto de 2012 12:14
    terça-feira, 7 de agosto de 2012 20:11
  • Pedro o problema é como o Pablo falou, no load da sua página vc sempre está carregando o dropdownlist, qdo vc seleciona um item e clica no botão ele dá um postback na página, como no seu evento load vc não está tratando isso ele carrega o drodownlist com a primeira opção e ai perde a opção que p usuário selecionou, faça como o Pablo indicou que dará certo e outro detalhe no drodownlist no design vá em properties em AppendDataboundItens = true e vá em itens e adicione um item tipo assim text = -- Motorista -- value = "0".

    Ai vc testa se o value do dropdownlist é diferente de "0" assim vc obriga o usuário a selecionar um ítem. 

    troca o ddlmotorista.selectedvalue por ddlmotorista.selectitem.value


    Junior

    • Marcado como Resposta Pedro Xavier quinta-feira, 9 de agosto de 2012 12:14
    quarta-feira, 8 de agosto de 2012 12:28

Todas as Respostas

  • Tenta assim:

    protected void Page_Load(object sender, EventArgs e)
            {
     if (!Page.IsPostBack)
                {
                FuncionarioDB funcionario = new FuncionarioDB();
    
                ddlMotorista.DataSource = funcionario.ListarMotoristas();
                ddlMotorista.DataTextField = "NOME";
                ddlMotorista.DataValueField = "RA_MAT";
                ddlMotorista.DataBind();
                }
                
            }

    Deve resolver seu problema!


     "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 Vitor Mendes terça-feira, 7 de agosto de 2012 18:37
    • Marcado como Resposta Pedro Xavier quinta-feira, 9 de agosto de 2012 12:14
    terça-feira, 7 de agosto de 2012 18:09
  • Não deu certo ... Ele salva em branco.
    terça-feira, 7 de agosto de 2012 19:30
  • Cola aqui o código onde você recupera o ítem selecionado para salvar no banco, por favor.

    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto

    • Marcado como Resposta Pedro Xavier quinta-feira, 9 de agosto de 2012 12:14
    terça-feira, 7 de agosto de 2012 20:11
  •         protected void Page_Load(object sender, EventArgs e)
            {
                
                
                    FuncionarioDB funcionario = new FuncionarioDB();
    
                    ddlMotorista.DataSource = funcionario.ListarMotoristas();
                    ddlMotorista.DataTextField = "NOME";
                    ddlMotorista.DataValueField = "RA_MAT";
                    ddlMotorista.DataBind();
                
                
            }
    
            protected void btnGravar_Click(object sender, EventArgs e)
            {
                AcidentesDB acidentes = new AcidentesDB();
    
                string ponto = null;
                acidentes.GravarAcidentes(txtDataAcidente.Text, txtDataOcorrencia.Text, ddlMotorista.SelectedValue, ddlCaminhao.SelectedValue, rbtJustificavel.SelectedValue, Pontos(ponto), Session["nome"].ToString(), DateTime.Today.ToString(), txtObservacao.Text, "0");
            }

    quarta-feira, 8 de agosto de 2012 11:46
  • Pedro o problema é como o Pablo falou, no load da sua página vc sempre está carregando o dropdownlist, qdo vc seleciona um item e clica no botão ele dá um postback na página, como no seu evento load vc não está tratando isso ele carrega o drodownlist com a primeira opção e ai perde a opção que p usuário selecionou, faça como o Pablo indicou que dará certo e outro detalhe no drodownlist no design vá em properties em AppendDataboundItens = true e vá em itens e adicione um item tipo assim text = -- Motorista -- value = "0".

    Ai vc testa se o value do dropdownlist é diferente de "0" assim vc obriga o usuário a selecionar um ítem. 

    troca o ddlmotorista.selectedvalue por ddlmotorista.selectitem.value


    Junior

    • Marcado como Resposta Pedro Xavier quinta-feira, 9 de agosto de 2012 12:14
    quarta-feira, 8 de agosto de 2012 12:28
  •         protected void Page_Load(object sender, EventArgs e)
            {
                
                
                    FuncionarioDB funcionario = new FuncionarioDB();
    
                    ddlMotorista.DataSource = funcionario.ListarMotoristas();
                    ddlMotorista.DataTextField = "NOME";
                    ddlMotorista.DataValueField = "RA_MAT";
                    ddlMotorista.DataBind();
                
                
            }
    
            protected void btnGravar_Click(object sender, EventArgs e)
            {
                AcidentesDB acidentes = new AcidentesDB();
    
                string ponto = null;
                acidentes.GravarAcidentes(txtDataAcidente.Text, txtDataOcorrencia.Text, ddlMotorista.SelectedValue, ddlCaminhao.SelectedValue, rbtJustificavel.SelectedValue, Pontos(ponto), Session["nome"].ToString(), DateTime.Today.ToString(), txtObservacao.Text, "0");
            }

    Troque todos os seus SelectedValue por SelectedItem.Value

    Rafael Santos
    E-mail: rsdsantos@gmail.com

    Pequeno Gafanhoto

    quarta-feira, 8 de agosto de 2012 13:50
  • Deu Certo !!!! 

    Muito Obrigado a todos !! 

    quinta-feira, 9 de agosto de 2012 03:10