none
Como receber o Valor de um DropDownList RRS feed

  • Pergunta

  •  Criei um DropDownList e preenchi ele, agora quero pegar o Valor que o Cliente Selecionou no DropDownList.

    listaFerramenta = New List(Of clsFerramentaBean)

            listaFerramenta = ferramentaDao.CarregarComboFerramenta()
            ddlFerramenta.DataTextField = "NomeFerramenta"
            ddlFerramenta.DataValueField = "CodigoFerramenta"
            ddlFerramenta.DataSource = listaFerramenta
            ddlFerramenta.DataBind()

    Consigo pegaro valor por esse método

    Protected Sub ddlFerramenta_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlFerramenta.SelectedIndexChanged
            MsgBox(ddlFerramenta.SelectedValue)
        End Sub

    O meu problema, não sei porque ele sempre mostra o primeiro Index, Sempre mostra o Código 1, não importanto o que eu Selecione.
    O que eu quero é quando o cliente Selecionar um Valor no DropDownList, ele me mostre qual o Valor que o Cliente clicou, isso direto pelo DropDownList. Sem precisar clicar em botão nenhum. Se alguem puder me ajudar eu agradeço.

    quinta-feira, 18 de fevereiro de 2010 00:57

Respostas

  • Essa pergunta virou a resposta. Coloquei o comando no PreInit e Funcionou. Muito Obrigado

    • Marcado como Resposta _Rodolfo quinta-feira, 18 de fevereiro de 2010 01:25
    quinta-feira, 18 de fevereiro de 2010 01:25
  • Você está fazendo a verificação para somente carregar o combo caso não seja PostBack?

    If Not Page.IsPostBack then
       ' Aqui você coloca os comandos para carregar o combo
    End if

    Se não estiver dentro dessa verificação irá trazer sempre o primeiro valor mesmo pois o combo é carregado novamente.
    • Marcado como Resposta _Rodolfo quinta-feira, 18 de fevereiro de 2010 01:30
    quinta-feira, 18 de fevereiro de 2010 01:26

Todas as Respostas

  • Olá Rodolfo

    Para que o evento SelectedIndexChanged seja disparado pelo próprio DropDownList é necessário marcar a propriedade AutoPostBack como True no DropDownList.

    Essa opção fará com que seja feito um post na página toda vez que for alterada a seleção do combo.


    Sem essa opção selecionada, será necessário clicar em algum botão ou outro objeto que faça post na página.


    Verifique também se o combo está sendo preenchido no PageLoad sem a verificação de PostBack. Coloque conforme abaixo:

    If Not Page.IsPostBack then
       ...
       ddlFerramenta.DataBind()
       ...
    End if

    Se não estiver dentro dessa verificação, a cada post a página será novamente carregada e o combo será preenchido novamente voltando a seleção para o primeiro item.


    Espero ter ajudado.

    Att.

    Patrícia Rosa
    quinta-feira, 18 de fevereiro de 2010 01:16
  • Fiz isso mas mesmo assim, não importa o Item que eu Seleciono no DropDownList ele só aparece o Primeiro. Exemplo se eu Seleciono Item2 ele mostra o Codigo 1 e se eu seleciono o item 5 aparece o código 1 também.
    quinta-feira, 18 de fevereiro de 2010 01:21
  • Olá

    Você está carregando o combo no PageLoad?
    quinta-feira, 18 de fevereiro de 2010 01:23
  • Sim estou Carregando o DropDownList no Evento Load.
    quinta-feira, 18 de fevereiro de 2010 01:23
  • Essa pergunta virou a resposta. Coloquei o comando no PreInit e Funcionou. Muito Obrigado

    • Marcado como Resposta _Rodolfo quinta-feira, 18 de fevereiro de 2010 01:25
    quinta-feira, 18 de fevereiro de 2010 01:25
  • Você está fazendo a verificação para somente carregar o combo caso não seja PostBack?

    If Not Page.IsPostBack then
       ' Aqui você coloca os comandos para carregar o combo
    End if

    Se não estiver dentro dessa verificação irá trazer sempre o primeiro valor mesmo pois o combo é carregado novamente.
    • Marcado como Resposta _Rodolfo quinta-feira, 18 de fevereiro de 2010 01:30
    quinta-feira, 18 de fevereiro de 2010 01:26
  • Colocando no PreInit funciona porque o combo ainda não foi carregado novamente (Load).

    Dessa forma, você consegue capturar a informação selecionada, mas provavelmente quando a página acabar de ser carregada o combo voltará para a primeira seleção e você perderé novamente essa informação.
    quinta-feira, 18 de fevereiro de 2010 01:29