Usuário com melhor resposta
Como receber o Valor de um DropDownList

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.
Respostas
-
-
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
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 -
-
-
-
-
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
-
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.- Sugerido como Resposta Patrícia Chareli Rosa quinta-feira, 18 de fevereiro de 2010 01:29