Buen día muñecos. Hoy me encontré con que necesitaba hacer un filtro para mostrar los datos que pertenecen a dicho filtro. La idea fue obtener los datos desde un Procedimiento Almacenado (SP) y esos datos cargarlos en un DropDownList.
Para realizar esto, lo primero fue importar el procedimiento previamente creado; el cuál me trae un id, un número y su descripción.
Una vez importado el SP, necesitaba mandar el contenido de ese SP al DropDownList.
En el controlador crearé un ViewBag en el que se guarde el resultado del método "ObtenerSucursales()".
public ActionResult Index(int? id = null) { try { ViewBag.ListaSucursales = ObtenerSucursales(); return View(listaFacturaCola); } catch (Exception ex) { this.ShowMessage(MessageType.Warning, "Ha ocurrido un error"); return RedirectToAction("Index"); } }
Ahora crearé el método ObtenerSucursales() dentro del mismo controlador; que lo ideal sería que estuviera en su propia clase.private List<SelectListItem> ObtenerSucursales() { var lista = sg.Consultar_sucursales(); //return new SelectListItem(lista); List<SelectListItem> listaSucursales = new List<SelectListItem>(); foreach (var item in lista) { listaSucursales.Add(new SelectListItem() { Value = item.Numero, Text = item.Descripcion}); } return listaSucursales; }
Aquí retornaremos un List<SelectListItem> que es lo que utilizará el DropDownList para mostrar los datos.
El sg.Consultar_sucursales() es el nombre del procedimiento y la información se almacenará en lista, pero para poder manejar la información obtenida del procedimiento, se debe llenar un SelectListItem y retornarlo.
El resultado, se almacena en ViewBag.ListaSucursales y así es como podremos hacer uso de el en la Vista de la siguiente manera.
@Html.DropDownList("SurcursalesDropDownList", (List<SelectListItem>)ViewBag.ListaSucursales, "TODAS")
Se declaró el helper DropDownList. En el primer parámetro, se escribe el nombre del DropDown para poder se utilizado mas adelante en caso de ser necesario. El segundo parámetro será el ViewBag.ListaSucursales, solo que este, será casteado como SelectListItem. El último eleménto será el nombre que mostrará por default el DropDownList.
Una vez hecho esto, el DropDownLista debería mostrar los datos obtenidos del SP.
No hay comentarios.:
Publicar un comentario