-_KIKO_- 0 Denunciar post Postado Julho 15, 2010 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
Ivan.Teles 23 Denunciar post Postado Julho 15, 2010 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
-_KIKO_- 0 Denunciar post Postado Julho 15, 2010 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
-_KIKO_- 0 Denunciar post Postado Julho 15, 2010 [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
Ivan.Teles 23 Denunciar post Postado Julho 15, 2010 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