Ler Valor DropDownList

nuno_fbo

Membro
Boa noiet,

Estou a ter um problemazinho básico que me está a tirar tempo no desenvolvimento de um projecto universitário...
Estive a dar uma vista de olhos na net e em tanta informação não consegui encontrar o que queria...

Aqui vai para ver se há alguém que me possa ajudar... claro que há!
smile.gif


Numa página .aspx adicionei um objecto dropdownlist, cliquei no objecto e fiz edit items, introduzi os seguintes valores:

Text - Indexado
Value - 1

Text - Fixa
Value -2

No code behind (aspx.cs) queria fazer uma simples condição, então no evento selectindexchanged estou a ter dificuldades em apanhar o valor seleccionado...

Já exprimentei de tudo:

dropdownlist.SelectedValue / dropdownlist.Items.Value / dropdownlist.Items.Text

Retorna-me sempre valores vazios, isto porque a dropdownlist não reconhece a lista, fiz algo do género:

ListItem [] listaXPTO = new ListItem[dropdownlist.Items.Count]

for (int i = 0; i < listaXPTO.Length; i++)
listaXPTO = dropdownlist.Items[dropdownlist.SelectedIndex]

e nada o dropdownlist.SelectedIndex vem com valor 0

Façam o seguinte teste...

ir a barra de ferramentas drag and drop de um objecto do tipo dropdownlist e clicar em edit items adicionando o valor e texto = 1 e com o valor e texto = 2

Sendo que a minha ddl fica só com os valores 1 e 2
Como é que no aspx.cs faço algo do género?

if (ddl.selectValue == 1)
lbl.text="Seleccionate 1";

else if (ddl.selectValue == 2)
lbl.text="Seleccionaste 2";

faço debug e com um break point no selectindex change verifico que na ddl estão a ser devolvidos sempre valores vazios, porque?

Fico a agurdar uma resposta de quem me poder ajudar... é sem duvida uma coisa simples... mas não estou a perceber o motivo disto estar a acontecer nem como dar a volta à situação...

Agradeço feedback

Muito Obrigado

Cumprimentos,
Nuno Oliveira
 
isso fazes

não precissa de ser no evento slectindexchange

basta ser num botão

ddl.selecteditem.text - para teres o texto
ddl.slectedvalue - para teres o valor
 
boas...

desde já obrigado pela tua resposta...

Acontece que preciso que seja nesse ivento, porque dependentemente da opção que o utilizador seleccionar na dropdownlist, aparecerá ou não uma textbox...

Neste caso é uma aplicação financeira sendo que, o utilizador vai ter a possiblidade de optar por uma regra de indexação Fixa ou Indexada...

Se for Indexada a txt do spread aparecerá...

Se for Fixa, visto que é uma taxa fixa não é influenciada pelo spread, esta txt e a respectiva label ficarão a .Visible = false!

Que me sujeres? Não sei se por exemplo com radio butons terei o mesmo problema...

Com a drop down list n estou a conseguir...

Já utilizei ListBoxes em alguns casos e não tive qualquer problema em apanhar o valor de uma ListBox onde criei um SQLDataSource... mas com a dropdownlist... tá-me a tirar do sério
smile.gif


Se tiveres o Visual Studio à mão exprimenta o que te estou a dizer... abres uma página e arastas um control dropdownlist... carregas em edit items e adicionas 2 items com o valor e text = 1 e o outro = 2

E verás que quando fazes no code behind (aspx.cs) no método SelectedIndexChanged

string xpto = dropdownlist.selectedvalue;

a string xpto fica com o valor "" - vazio

Sabes-me dizer porquê?
E como passar esta dificuldade...

O que é que me sugeres?

Obrigadão...

Cump.
Nuno Oliveira
 
Se calhar o teu problema é o local onde estás a fazer a chamada no code-behind.. tens de investigar um pouco o "Page lifecycle" do ASP.NET e ver a partir de que momento é que a dropdown irá ser preenchida com os valores do postback. Por exemplo, no Page_Load ainda não está.

No método que definiste como handler do "onChange" da dropdownlist já estará o selectedValue correcto.
 
Boas...

Complicar para que...

Mudei a minha estratégia... RadioButtonList com um UpdatePainel da Tollkit do Ajax... tá perfeito...

Pena que tenha perdido tanto tempo com a DDL...

Assim fica melhor visualmente e tudo...

Um grande obrigado e qq problema que surja... cá estarei a pedirvos ajuda :)

Cumprimentos,
Nuno Oliveira
 
Back
Topo