Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como fazer um dropdownlist mostrar uma concatenação de colunas

Tenho um table de cidades que é mostrada em um DropDownList usando a coluna Nome.

No controller a lista é alimentada com

ViewBag.CidadeID = new SelectList(db.Cidades.OrderBy(x => x.Nome), "ID", "Nome");

Como faço para que mostre também a coluna Estado???

Nome + " (" + Estado + ")"

Acho que no lugar do db.Cidades eu teria de fazer algo como um Select que me trouxesse o ID e a concatenação, mas não sei como fazer isso.

2 respostas
solução!

Resolvido

var cidades = db.Cidades
.Select(u => new
 {
        Text = u.Nome + " (" + u.Estado + ")",
        Value = u.ID
 }).ToList();
 ViewBag.CidadeID = new SelectList(cidades.OrderBy(x => x.Text), "Value", "Text");

Olá.

É uma forma de se fazer isso. Também é possível fazer essa concatenação depois. Do jeito que você fez, não consegue mais usar somente cidade, caso seja necessário, pois o Text já tem no padrão Cidade (Estado). Enfim, que bom que resolveu o seu problema.

Sobre a ordenação, era isso que queria mesmo? Está ordenando pelo nome da cidade, não importando o estado? É que se forem cidades de todos os estados, não está retornando embaralhado?