Usuário com melhor resposta
Dúvida dropDownList.SelectedValue com LINQ

Pergunta
-
Bom galera, a situação é a seguinte.
Tenho uma tabela Categoria( id, descricao).
Eu listo os itens do dropDownList usando o LINQDataSource ordenados por descricao puxando da tabela Categoria. O texto é a descricao(DataTextField="descricao"), mas o valor é o id(DataValueField="id").
eu tenho um cadastro (outra Tabela) que armazena o id de Categoria, o que preciso, é que ao carregar a página o dropDownList já fique com o Selected valor nesse que foi cadastrado.
Estou tentando com esse código:
string valor = e.id_Categoria.ToString();
drpCategoria.SelectedIndex = drpCategoria.Items.IndexOf(drpCategoria.Items.FindByValue(valor));porém está me retornando o valor -1, que no dropDownList ele fica selecionado o primeiro item da lista;
Alguém aí pode me ajudar?
Respostas
-
Leandro,
Você já nao tem o código da categoria? Porque ao invés de utilizar a propriedade SelectedIndex você nao utiliza a propriedade SelectedValue passando o código da categoria?
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta Leandro Guyss sábado, 10 de novembro de 2012 20:11
Todas as Respostas
-
Boa tarde,
Mostre como esta o seu método page_load
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br -
Leandro,
Você já nao tem o código da categoria? Porque ao invés de utilizar a propriedade SelectedIndex você nao utiliza a propriedade SelectedValue passando o código da categoria?
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima- Marcado como Resposta Leandro Guyss sábado, 10 de novembro de 2012 20:11
-
está assim:
private void Page_Load(object sender, EventArgs e) { if (User.Identity.IsAuthenticated) { try { if (!Page.IsPostBack) { mostrar(); } } catch { btnSalvar.Text = "Proximo"; } } else { Response.Redirect("~/Default.aspx"); } } private void mostrar() { TCCDataContext con = new TCCDataContext(); Empresa e = con.Empresas.First(c=> c.id_User == usuarioLogado()); drpCategoria.SelectedValue = e.id_Categoria.ToString(); lblMensagem.Text = drpCategoria.SelectedValue.ToString() ;
}
Andre tentei conforme você falou, porém mesmo assim não me retorna o correto, e no lblMensagem não retorna nada...
-
Leandro,
Você já fez o debug e viu se o valor que e.id_Categoria esta vindo correto?
Com o código que você postou acima eu consegui fazer normalmente
Bruno Viegas D. Ribeiro
Analista Desenvolvedor de Sistemas www.brunoviegas.com.br