DROPDOWNLIST VINDO DO BANCO COM RAZOR
05/06/2014
0
Eduardo Silva
Post mais votado
06/06/2014
ViewBag.TiposPendencia = new SelectList(db.TbPENDENCIA_TIPO, "PenTipCODIGO", "PenTipDESCRICAO");
Onde:
- ViewBag.TiposPendencia: uma variável na ViewBag que contém a lista que será usada para montar a DropDownList na view;
- db.TbPENDENCIA_TIPO: minha tabela no banco, usando EF;
- "PenTipCODIGO": o campo que é chave na lista;
- "PenTipDESCRICAO": o campo que deve ser listado na DropDownList;
E na view:
@Html.DropDownListFor(model => model.PenTipCODIGO, (SelectList)ViewBag.TiposPendencia, new { @class = "form-control"})
Onde:
- model.PenTipCODIGO: é o campo na tabela principal que se relaciona com a tabela de tipos;
- (SelectList)ViewBag.TiposPendencia: variável que foi criada lá na action. É preciso fazer o cast, pois as variáveis da viewbag são dinâmicas e não tipadas.
Espero que ajude.
Joel Rodrigues
Mais Posts
06/06/2014
Kelvin Ott
no resultado você irá adicionar os dados vindo do banco, que deverá vir com um código e uma descricao.
DropDownList suaDropDownList = new DropDownList(); DataTable resultado = new DataTable(); suaDropDownList.DataSource = resultado; suaDropDownList.DataTextField = "Descricao"; suaDropDownList.DataValueField = "Codigo";
06/06/2014
Eduardo Silva
Fiz aqui da Forma do Joel mesmo, vlw pela força.
Estou fazendo uma tela, que tem um cadastro com um select de estados e com um jquery eu listo as cidades daquele estado.
Funcionou dboa..
Abç galera
06/06/2014
Eduardo Silva
public ActionResult loginInteressado()
{
//ViewBag.ds_bairro = new SelectList(listaEstados(), "UF_ESTADO", "NM_ESTADO");
ViewBag.ds_bairro = new SelectList(listaEstados(), "UF_ESTADO", "NM_ESTADO");
return View();
}
public List<EstadoModel> listaEstados()
{
List<EstadoModel> listaEstado = new List<EstadoModel>();
try
{
EstadoDal c = new EstadoDal();
foreach (Estado il in c.ListarEstado())
{
EstadoModel Model = new EstadoModel();
Model.UF_ESTADO = il.UF_ESTADO;
Model.NM_ESTADO = il.NM_ESTADO;
listaEstado.Add(Model);
}
}
catch (Exception e)
{
ViewBag.Mensagem = e.Message;
}
return listaEstado;
}
VIEW
<td>@Html.DropDownList("ds_bairro", "SELECIONE UMA CIDADE")</td>
NA HORA DE SALVAR DA ESSE ERRO.
ERRO: {"There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'ds_bairro'."}
06/06/2014
Joel Rodrigues
(SelectList)ViewBag.MINHALISTA
no lugar de "de_bairro".
06/06/2014
Eduardo Silva
<td> @Html.DropDownListfor(c => c.Municipio, (SelectList)ViewBag.ds_bairro) </td>
da o mesmo erro ai tentei no controller.
public ActionResult loginInteressado()
{
ViewBag.ds_bairro = new SelectList((SelectList)ViewBag.listaEstados(), "UF_ESTADO", "NM_ESTADO");
return View();
}
Da erro de (Não é possível fazer associação em tempo de execução em uma refência nula)
06/06/2014
Eduardo Silva
Era o redirecionamento para mesma página ao cadastrar, eu tinha feito isso para não precisar ficar voltando ao cadastrar.
Abç
23/06/2014
Eduardo Silva
public ActionResult loginInteressado()
{
ViewBag.ds_bairro = new SelectList((SelectList)ViewBag.listaEstados(), "UF_ESTADO", "NM_ESTADO");
return View();
}
tem como eu colocar pra executar esse ViewBag.ds_bairro apensa uma vez?
23/06/2014
Eduardo Silva
Meu erro é outro, quando vou cadastrar a partir de um formulário se eu der um redirectToAction("logininteressado", "Home");
ele funciona porque executa o ViewBag.ds_bairro = new SelectList((SelectList)ViewBag.listaEstados(), "UF_ESTADO", "NM_ESTADO"); porem não valida.
mais se eu fizer um ModelState.isValid e retornar para view("logininteressado")
da erro devido a NÃO EXECUÇÃO do ViewBag.ds_bairro = new SelectList((SelectList)ViewBag.listaEstados(), "UF_ESTADO", "NM_ESTADO");
pois ele joga direto para a página...
tenho que fazer a validação de outra forma? ou teria uma solução melhor para isso??
23/06/2014
Joel Rodrigues
23/06/2014
Eduardo Silva
Cara tu tem curso online? tu é foda para ensinar!! parabéns.
Te add até no linkedin rs.
Abç
25/06/2014
Joel Rodrigues
Vou confessar que não sei (nem procurei, para ser sincero, mas farei isso um dia).
25/06/2014
Joel Rodrigues
Cara tu tem curso online? tu é foda para ensinar!! parabéns.
Te add até no linkedin rs.
Abç
Opa, que bom que funcionou. Isso eu descobri na prática aqui, pelo método da tentativa e erro.
Ah, não tenho curso não, mas de vez em quando escrevo uns posts por aí (Linha de Código, .NET Coders, DevMedia, Mr. Bool).
Temos alguns cursos aqui na DevMedia, mas se de repente você tiver alguma dificuldade ou ideia de tema que ache interessante, me passa que posso tentar escrever um post ou gravar um vídeo aí pra ajudar.
Um abraço e bons códigos.
08/09/2017
ômega Ltda
Clique aqui para fazer login e interagir na Comunidade :)