DROPDOWNLIST VINDO DO BANCO COM RAZOR

05/06/2014

0

Boa Noite Galera alguém algum link ou dica de como fazer um dropdownlist com informações vindo do Banco?
Eduardo Silva

Eduardo Silva

Responder

Post mais votado

06/06/2014

Rapaz, eu estou fazendo da seguinte forma na action:
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

Joel Rodrigues
Responder

Mais Posts

06/06/2014

Kelvin Ott

Bom dia, tenta dessa forma:

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";
Responder

06/06/2014

Eduardo Silva

Obrigado Kelvin Ott & Joel Rodrigues.

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
Responder

06/06/2014

Eduardo Silva

CONTROLE

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'."}
Responder

06/06/2014

Joel Rodrigues

Experimente colocar ele na ViewBag e fazer semelhante ao que eu fiz no exemplo:
(SelectList)ViewBag.MINHALISTA

no lugar de "de_bairro".
Responder

06/06/2014

Eduardo Silva

Coloquei dessa forma na view

<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)
Responder

06/06/2014

Eduardo Silva

Agora eu resolvi vlw Joel Rodrigues.

Era o redirecionamento para mesma página ao cadastrar, eu tinha feito isso para não precisar ficar voltando ao cadastrar.

Abç
Responder

06/06/2014

Joel Rodrigues

Show de bola então.
Abraço e bons códigos.
Responder

23/06/2014

Eduardo Silva

Descobri o erro e encontrei outro pior rs.


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?
Responder

23/06/2014

Eduardo Silva

Bagulho ficou doido rs.

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??
Responder

23/06/2014

Joel Rodrigues

Rapaz, na prática eu descobri que se você usa a variável da ViewBag em algum momento, então ela precisa estar sempre disponível. Ou seja, toda action que chamar aquela view tem que criar essa variável na ViewBag, senão a View não vai encontrar a SelectList.
Responder

23/06/2014

Eduardo Silva

existe outra alternativa?
Responder

23/06/2014

Eduardo Silva

realmente brother funcionou,

Cara tu tem curso online? tu é foda para ensinar!! parabéns.

Te add até no linkedin rs.

Abç
Responder

25/06/2014

Joel Rodrigues

existe outra alternativa?
Aí uma boa pergunta. rsrsrs
Vou confessar que não sei (nem procurei, para ser sincero, mas farei isso um dia).
Responder

25/06/2014

Joel Rodrigues

realmente brother funcionou,

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.
Responder

08/09/2017

ômega Ltda

Joel boa tarde! Desculpe a pergunta, mas nesse formato que você criou a ViewBag ficará dentro da View correto? Como faço para ele "Achar" o banco? No meu caso só está aparecendo a opção DbNull.
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar