Ir para conteúdo

POWERED BY:

Arquivado

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

-_KIKO_-

[Resolvido] dropdown...

Recommended Posts

Pessoas estou com uma duvida no .net

 

 

Eu coloquei um dropdown:

                <asp:DropDownList ID="modo_exibicao" runat="server" AutoPostBack="True" 
                    ontextchanged="modo_exibicao_TextChanged1" >
                    <asp:ListItem Value="lista">Exibição em Lista</asp:ListItem>
                    <asp:ListItem Value="detalhado">Exibição Detalhada</asp:ListItem>
                </asp:DropDownList>

Ao trocar o valor dele, o "ontextchanged" roda uma instrução assim:

 

protected void modo_exibicao_TextChanged1(object sender, EventArgs e)
    {
        Session["exibicao"] = modo_exibicao.Text;
    }

 

Ou seja, quando troca o valor do dropdown, ele grava na Session porque tenho que usar esse valor depois...

 

Até ai funciona tudo bem, grava na sessão e tal...

 

O problema é que o dropdown não mantem selecionada a opçao que escolhi

No caso, se por exemplo eu escolho o item "Exibição Detalhada", após o reload na página, ele volta a marcar o "Exibição em Lista"....

 

Em PHP por exemplo eu posso fazer da seguinte forma:

 

<select name="selecao">
 <option value="lista" <?php if (variavel=='lista') { ?> selected="selected" <? } ?>>Exibição em lista</option>
 <option value="detalhado" <?php if (variavel=='lista') { ?> selected="selected" <? } ?>>Exibição Detalhada</option>
</select>

 

Como posso deixar o box marcado sempre na ultima opçao que o usuario escolheu??

Pessoal está se confundindo qual seleção foi feita porque não é gravada a ultima...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Extranho, parece que o viewState da página esta desativado, pois por padrão ele ja fica selecionado. a não ser q esteja desativado na pagina ou no web.config.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que está sim, na verdade ele funciona apenas na primeira requisição..

 

 

Por exemplo, este Dropdown está em uma pagina que tem varios links...no mesmo lugar, nunca sai de la..

Quando eu clico nele, ele volta selecionado sem problemas, mas se eu clico em algum link a pagina faz o reload e ele volta a posição inicial...

 

Como posso dizer.

Eu tenho este DropDown e abaixo dele uma Div que lista os arquivos/pastas do servidor...

Então temos la o dropdown para a pessoa escolher o modo de exibição (lista ou detalhado) e abaixo disso temos as pastas e arquivos do servidor.

 

Se a pessoa escolhe detalhado exibe data de criação, tamanho, etc dos arquivos se a pessoa escolhe lista mostra apenas o nome do arquivo.

 

Então se a pessoa clica em um diretório ou algum arquivo, some a seleção dela no dropdown..

Sendo assim, a primeira requisição, ele traz certinho, mas dai pra frente nao traz mais.. (claro)...

 

O meu caso agora era pegar essa Session que eu gravei: Session["exibicao"] e verificar

 

Se a Session["exibicao"] for LISTA, seleciona o item LISTA do dropdown..

Se a Session["exibicao"] for DETALHADO, seleciona o item DETALHADO do dropdown...

 

Eu quero manter em Session para não perder a decisão do usuário durante a utilização do sistema...

 

Entendeu?...

 

Como faço? Tentei com SelectedIndex dentro do page_load, mas não deu muito certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[Resolvi]

 

O problema era por causa do postback.

 

 

        if (!IsPostBack)
        {
            if (Session["exibicao"] != "" && Session["exibicao"] != null)
                modo_exibicao.SelectedValue = Session["exibicao"].ToString();
        }

    protected void modo_exibicao_TextChanged1(object sender, EventArgs e)
    {
        Session["exibicao"] = modo_exibicao.SelectedValue;
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei nessa possibilidade do post back, mas seu drop esta com dados fixos.

Mas ta resolvido ta ótimo!

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.