Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Arruda

DropDownList não armazena Value

Recommended Posts

Olá pessoal, vou encher a paciência de vocês mais uma vez com uma dúvida minha aqui...

 

Estou fazendo um projeto em que, em determinado ponto, o usuário vai alterar um cadastro. Há dados variáveis que podem ser colocados em TextBoxes, o que está perfeito. Mas também há dados que necessitam ser colocados em DropDownLists, por terem uma restrição para o valor deles definida em Banco de Dados. Existem 3 valores para serem definidos em DropDownLists, que são interdependentes entre si, ou seja... A 2ª DropDownList só é preenchida dependendo do valor selecionado na 1ª e a 3ª só é preenchida dependendo do valor selecionado na 2ª. Eu pego todos os valores originais para alterar da Session, já definidos como parâmetros dentro dos respectivos DataSources.

O problema é: Preciso pegar os valores selecionados das três DropDownList, mas se o usuário não alterar nada nas DropDown, apenas nas TextBoxes, o último nível das DropDowns não capta Value. As duas primeiras pegam o Value certinho, só a última que não... Ela vem com o Value vazio "". Se a página der um postback, aí o valor é capturado normalmente...

 

Alguém sabe o que pode estar provocando isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi bem. Em qual evento esta tentando ler esta value vazio? Qual value esta tentando ler?

 

Abraços...

 

Estou tentando ler no evento de Click do botão da página. Quero ler o value da última das 3 DropDowns, mas este aparece sempre vazio, enquanto as outras duas primeiras capturam o valor corretamente. Estou preenchendo as 3 DropDowns diretamente de DataSources e defino o valor primariamente selecionado nelas por session.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por acaso o momento que você alimenta o dataSource do 3º dropdownlista esta no PageLoad e fora do (!IsPostBack) ?

 

Abraços...

 

Então, eu já identifiquei qual era o problema, mas ainda não consegui resolve-lo.

 

É o seguinte... Tenho três dropdowns diferentes: Arquivo, Gaveta e Pasta. Cada Arquivo contém n Gavetas e cada Gaveta contém n Pastas. Ao alterar o valor da dropdown Arquivo, os itens da Gaveta terão de ser atualizados conforme o Arquivo selecionado, o mesmo vale para Gaveta e Pasta. Só que quando altero o Arquivo, os itens da Pasta devem ser zerados, pois não há nenhuma Gaveta relacionada ainda. Quando eu fazia isso, o valor capturado da Pasta era sempre "", pois os itens eram zerados, capturados e só depois preenchidos novamente. Retirei este comando, dei umas arrumadas, só que agora ele pega só o valor do primeiro item de cada dropdown, e não o selecionado. Deve ser realmente algum problema de lógica para os PostBacks, mas já tentei de vários jeitos e não consegui um resultado satisfatório. Lembrando, é claro, que a página já é carregada com os valores existentes na Session, pois é página de alteração. Depois de preenchido, eu simplesmente anulo os valores da Session para não capturar mais. Alguém sabe o que eu posso fazer?

 

Código incorporado ao Source:

       if (Session["arq"] != null) nArquivo.SelectedValue = Session["arq"].ToString();
       nGaveta.DataBind(); //faz a dropdown nGaveta atualizar seus dados conforme o Arquivo selecionado
       if (Session["gav"] != null) nGaveta.SelectedValue = Session["gav"].ToString();
       nPasta.DataBind(); //faz a dropdown nPasta atualizar seus dados conforme a Gaveta selecionada
       if (Session["pasta"] != null) nPasta.SelectedValue = Session["pasta"].ToString();

       Session["arq"] = null;
       Session["gav"] = null;
       Session["pasta"] = null;

 

Agradeço! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além de executar o DataBind() das grid novamente, você não deveria alimentar o DataSource novamente tbm?

 

Abraços...

 

Não creio que seja necessário, pois os values das dropdowns de Arquivos e Gavetas estão vindo certos, só os da Pasta que estão "zoados". Mas vou tentar isso. Qualquer coisa, posto o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, nem atualizando os DataSources deu certo... Estou ficando sem imaginação sobre o que fazer em relação a isso... Alguém tem alguma outra ideia de como eu poderia fazer um form de alteração parecido com este?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É estranho, não tem segredo nenhum, ao atualizar um DropDownList atualizar o de baixo.

De uma modificada no seu formulário, não vejo necessidade de atualizar session. No evento selected do primeiro drop você executa um método que atualiza o segundo e assim por diante.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É estranho, não tem segredo nenhum, ao atualizar um DropDownList atualizar o de baixo.

De uma modificada no seu formulário, não vejo necessidade de atualizar session. No evento selected do primeiro drop você executa um método que atualiza o segundo e assim por diante.

 

Abraços...

 

Vou tentar fazer isso mesmo... Refazer o meu form e ver no que dá. Qualquer coisa, se der o mesmo erro, eu posto aqui kkkkkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.