Usuário com melhor resposta
@Html.DropDownList & ViewBag

Pergunta
-
Como carregar um DropDownList com o conteúdo de uma ViewBag?
A ViewBag contem uma tabela proveniente de um DataSet.
- Editado Wilson Boris quinta-feira, 9 de janeiro de 2014 20:06 complemento
Respostas
-
cara não achei um jeito muito legal de se fazer mas, damos nossos jeitos .. rs, da uma olhada se te atende e tenta dar uma melhorada!
List<Cidade> cidade = new List<Cidade>(); var listaAux = (from row in dt.AsEnumerable() select new { ID = row[0], Descricao = row[1] }).ToList(); for (int i = 0; i < listaAux.Count; i++) { cidade.Add(new Cidade(Convert.ToInt32(listaAux[i].ID), Convert.ToString(listaAux[i].Descricao))); } ViewBag.Combo = new SelectList(cidade, "ID", "Descricao", 0);
--Rafael Albuquerque
- Sugerido como Resposta Vitor Mendes sexta-feira, 10 de janeiro de 2014 11:50
- Marcado como Resposta Wilson Boris sexta-feira, 10 de janeiro de 2014 11:55
Todas as Respostas
-
Wilson ve se isso te ajuda!
public class Cidade
{
public Cidade(int id, string descricao)
{
ID = id;
Descricao = descricao;
}
public int ID { get; set; }
public string Descricao { get; set; }
}List<Cidade> cidade = new List<Cidade>(); cidade.Add(new Cidade(12,"são paulo")); ViewBag.Combo = new SelectList(cidade, "ID", "Descricao", 0);
e no cshtml:
@Html.DropDownList("Combo")
--Rafael Albuquerque
-
Olá Rafael, muito obrigado pelo retorno.
A situação que eu tenho está retornando com a mensagem:
Additional information: O item ViewData que possui a chave 'natjur' é do tipo 'System.Data.DataTable', mas precisa ser do tipo 'IEnumerable<SelectListItem>'.
Como era de esperar pois eu estou trabalhando com um DataSet:
DataSet ds = Sessao.ds;
ViewBag.natjur = Sessao.ds.Tables["Ag_Pol_C_PJ_Nat_Jur"];@Html.DropDownList("natjur")
Como fazer essa alteração de DataTable para IEnumerable?
-
cara não achei um jeito muito legal de se fazer mas, damos nossos jeitos .. rs, da uma olhada se te atende e tenta dar uma melhorada!
List<Cidade> cidade = new List<Cidade>(); var listaAux = (from row in dt.AsEnumerable() select new { ID = row[0], Descricao = row[1] }).ToList(); for (int i = 0; i < listaAux.Count; i++) { cidade.Add(new Cidade(Convert.ToInt32(listaAux[i].ID), Convert.ToString(listaAux[i].Descricao))); } ViewBag.Combo = new SelectList(cidade, "ID", "Descricao", 0);
--Rafael Albuquerque
- Sugerido como Resposta Vitor Mendes sexta-feira, 10 de janeiro de 2014 11:50
- Marcado como Resposta Wilson Boris sexta-feira, 10 de janeiro de 2014 11:55