Principales respuestas
Como hago la Busqueda despues de los filtros

Pregunta
-
Hola como va?. Haciendo tutoriales y pruebas distintas logre hacer un filtro en cascada así
el cotroller
public IActionResult Index() { List<Seccion> seccionlist = new List<Seccion>(); EntityFrameworkCore ------- seccionlist = (from seccion in _context.Seccion select seccion).ToList(); seccionlist.Insert(0, new Seccion { SeccionID = 0, SeccionNombre = "Select" }); ViewBag.ListofSeccion = seccionlist; return View(); } [HttpPost] public IActionResult Index(Seccion objseccion, FormCollection formCollection) { if (objseccion.SeccionID == 0) { ModelState.AddModelError("", "Select Seccion"); } else if (objseccion.DepartamentoID == 0) { ModelState.AddModelError("", "Select Departamento"); } else if (objseccion.LocalidadID == 0) { ModelState.AddModelError("", "Select Localidad"); } else if (objseccion.CircuitoID == 0) { ModelState.AddModelError("", "Select Circuito"); } else if (objseccion.EstablecimientoID == 0) { ModelState.AddModelError("", "Select Establecimiento"); } else if (objseccion.MesaID == 0) { ModelState.AddModelError("", "Select Mesa"); } var DepartamentoID = HttpContext.Request.Form["DepartamentoID"].ToString(); var LocalidadID = HttpContext.Request.Form["LocalidadID"].ToString(); var CircuitoID = HttpContext.Request.Form["CircuitoID"].ToString(); var EstablecimientoID = HttpContext.Request.Form["EstablecimientoID"].ToString(); var MesaID = HttpContext.Request.Form["MesaID"].ToString(); List<Seccion> seccionlist = new List<Seccion>(); seccionlist = (from seccion in _context.Seccion select seccion).ToList(); seccionlist.Insert(0, new Seccion { SeccionID = 0, SeccionNombre = "Select" }); ViewBag.ListofSeccion = seccionlist; return View(objseccion); } public JsonResult Getdepartamento(int SeccionID) { List<Departamento> departamentolist = new List<Departamento>(); departamentolist = (from departamento in _context.Departamento where departamento.SeccionID == SeccionID select departamento).ToList(); departamentolist.Insert(0, new Departamento { DepartamentoID = 0, DepartamentoNombre = "Select" }); return Json(new SelectList(departamentolist, "DepartamentoID", "DepartamentoNombre")); } public JsonResult GetLocalidad(int DepartamentoID) { List<Localidad> localidadList = new List<Localidad>(); localidadList = (from localidad in _context.Localidad where localidad.DepartamentoID == DepartamentoID select localidad).ToList(); localidadList.Insert(0, new Localidad { LocalidadID = 0, LocalidadNombre = "Select" }); return Json(new SelectList(localidadList, "LocalidadID", "LocalidadNombre")); } public JsonResult GetCircuito(int LocalidadID) { List<Circuito> circuitoList = new List<Circuito>(); circuitoList = (from circuito in _context.Circuito where circuito.LocalidadID == LocalidadID select circuito).ToList(); circuitoList.Insert(0, new Circuito { CircuitoID = 0, CircuitoNombre = "Select" }); return Json(new SelectList(circuitoList, "CircuitoID", "CircuitoNombre")); } public JsonResult GetEstablecimiento(int CircuitoID) { List<Establecimiento> establecimientoList = new List<Establecimiento>(); establecimientoList = (from establecimiento in _context.Establecimiento where establecimiento.CircuitoID == CircuitoID select establecimiento).ToList(); establecimientoList.Insert(0, new Establecimiento { EstablecimientoID = 0, EstablecimientoNombre = "Select" }); return Json(new SelectList(establecimientoList, "EstablecimientoID", "EstablecimientoNombre")); } public JsonResult GetMesa(int EstablecimientoID) { List<Mesa> mesaList = new List<Mesa>(); mesaList = (from mesa in _context.Mesa where mesa.EstablecimientoID == EstablecimientoID select mesa).ToList(); mesaList.Insert(0, new Mesa { MesaID = 0, MesaNumero = 0 }); return Json(new SelectList(mesaList, "MesaID", "MesaNumero")); }
Luego la vista
@model MiPrueba.Models.Seccion @{ <script src="/lib/jquery/dist/jquery.js"></script> <script type="text/javascript"> $(document).ready(function () { var items = "<option value='0'>Select</option>"; $('#DepartamentoID').html(items); $('#LocalidadID').html(items); $('#CircuitoID').html(items); $('#EstablecimientoID').html(items); $('#MesaID').html(items); }); </script> <script type="text/javascript"> $(document).ready(function () { $('#SeccionID').change(function () { var url = '@Url.Content("~/")' + "Demo/Getdepartamento"; var ddlsource = "#SeccionID"; $.getJSON(url, { SeccionID: $(ddlsource).val() }, function (data) { var items = ''; $("#DepartamentoID").empty(); $.each(data, function (i, departamento) { items += "<option value='" + departamento.value + "'>" + departamento.text + "</option>"; }); $('#DepartamentoID').html(items); }); }); $('#DepartamentoID').change(function () { var url = '@Url.Content("~/")' + "Demo/GetLocalidad"; var ddlsource = "#DepartamentoID"; $.getJSON(url, { DepartamentoID: $(ddlsource).val() }, function (data) { var items = ''; $('#LocalidadID').empty(); $.each(data, function (i, localidad) { items += "<option value='" + localidad.value + "'>" + localidad.text + "</option>"; }); $('#LocalidadID').html(items); }); }); $('#LocalidadID').change(function () { var url = '@Url.Content("~/")' + "Demo/GetCircuito"; var ddlsource = "#LocalidadID"; $.getJSON(url, { LocalidadID: $(ddlsource).val() }, function (data) { var items = ''; $('#CircuitoID').empty(); $.each(data, function (i, circuito) { items += "<option value='" + circuito.value + "'>" + circuito.text + "</option>"; }); $('#CircuitoID').html(items); }); }); $('#CircuitoID').change(function () { var url = '@Url.Content("~/")' + "Demo/GetEstablecimiento"; var ddlsource = "#CircuitoID"; $.getJSON(url, { CircuitoID: $(ddlsource).val() }, function (data) { var items = ''; $('#EstablecimientoID').empty(); $.each(data, function (i, establecimiento) { items += "<option value='" + establecimiento.value + "'>" + establecimiento.text + "</option>"; }); $('#EstablecimientoID').html(items); }); }); $('#EstablecimientoID').change(function () { var url = '@Url.Content("~/")' + "Demo/GetMesa"; var ddlsource = "#EstablecimientoID"; $.getJSON(url, { EstablecimientoID: $(ddlsource).val() }, function (data) { var items = ''; $('#MesaID').empty(); $.each(data, function (i, mesa) { items += "<option value='" + mesa.value + "'>" + mesa.text + "</option>"; }); $('#MesaID').html(items); }); }); }); </script> <form asp-controller="Demo" asp-action="Index" method="post" class="form-horizontal" role="form"> <div class="form-group"> <div class="row"> <div class="alert-danger" asp-validation-summary="ModelOnly"></div> <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4"> <label asp-for="SeccionNombre" class="control-label">Seccion</label> <select asp-for="SeccionID" class="form-control" asp-items="@(new SelectList(@ViewBag.ListofSeccion,"SeccionID", "SeccionNombre"))"></select> </div> <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4"> <label class="control-label">Departamento</label> <select class="form-control" id="DepartamentoID" name="DepartamentoID" asp-for="DepartamentoID" asp-items="@(new SelectList(string.Empty,"DepartamentoID", "DepartamentoNombre"))"></select> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4"> <label class="control-label">Localidad</label> <select class="form-control" id="LocalidadID" name="LocalidadID" asp-for="LocalidadID" asp-items="@(new SelectList(string.Empty,"LocalidadID", "LocalidadNombre"))"></select> </div> <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4"> <label class="control-label">Circuito</label> <select class="form-control" id="CircuitoID" name="CircuitoID" asp-for="CircuitoID" asp-items="@(new SelectList(string.Empty,"CircuitoID", "CircuitoNombre"))"></select> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4"> <label class="control-label">Establecimiento</label> <select class="form-control" id="EstablecimientoID" name="EstablecimientoID" asp-for="EstablecimientoID" asp-items="@(new SelectList(string.Empty,"EstablecimientoID", "EstablecimientoNombre"))"></select> </div> <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4"> <label class="control-label">Mesa</label> <select class="form-control" id="MesaID" name="MesaID" asp-for="MesaID" asp-items="@(new SelectList(string.Empty,"MesaID", "MesaNumero"))"></select> </div> </div> </div> <div class="form-group"> <div class="row"> <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4"> <input id="Submit1" type="submit" value="Buscar" /> </div> </div> </div> </form> }
Cada item estan en distintas tablas relacionadas (Seccion,Departamento,Localidad,Circuito,Establecimiento,Mesa).
Luego tengo la tabla donde estan todos los registros que deseo consultar, y en esa tabla existen cada campo (seccion,departamento,localidad,circuito,establecimiento,mesa) mas otros campos.
1- como realizo la consulta en esa tabla despues de haber seleccionado los list filtrados
2-Quiero agregar a cada lista un todos/as para que el filtro tome un total, como lo haria
3-Los datos devueltos que me recomienda poner directamente en un <table> o un grid
4-El list mesa la descripcion es numerica como podria agregar al list todos/as el texto
desde ya gracias
Respuestas
-
Bueno hice una truchada por falta de conocimiento pero funciono. explico cambie el codigo
<p> <input id="IDseccion" type="hidden" name="bSeccion" > <input id="IDdepartamento" type="hidden" name="bDepartamento"> <input id="IDlocalidad" type="hidden" name="bLocalidad"> <input id="IDcircuito" type="hidden" name="bCircuito"> <input id="IDestablecimiento" type="hidden" name="bEstablecimiento"> <input id="IDmesa" type="hidden" name="bMesa"> <input type="submit" value="Buscar" /> </p>
y luego en lo evento de cada combo agregue por ejemplo en seccion
$('#IDseccion').val($('#SeccionID option:selected').text());
y como el ultimo combo no tenia evento agregue esto
$('#MesaID').change(function () { $('#IDmesa').val($('#MesaID option:selected').text()); });
ahi se llenan las variables y hago la consulta al controller que devuelve la vista ConsultarPadron y funciona
- Marcado como respuesta EnzoTuc40 lunes, 20 de mayo de 2019 22:57
Todas las respuestas
-
Bueno Probando en el cotroller agregue esto
public async Task<IActionResult> ConsultarPadron(string bSeccion, string bDepartamento, string bLocalidad, string bCircuito, string bEstablecimiento, int bMesa) { var padron2019 = from m in _context.Padron2019 where m.Seccion == bSeccion && m.Departamento == bDepartamento && m.Localidad == bLocalidad && m.Circuito2 == bCircuito && m.Mesa == bMesa select m; return View(await padron2019.ToListAsync()); }
y en el index coloque un boton de busqueda que va a una vista cosulta
como paso los parametros de los list cuando se aprieta el boton de buscar
-
Bueno haciendo pruebas queria ver si funcionaba la consulta y agregue unos input
<form asp-controller="Demo" asp-action="ConsultarPadron"> <p> <input type="text" name="bSeccion"> <input type="text" name="bDepartamento"> <input type="text" name="bLocalidad"> <input type="text" name="bCircuito"> <input type="text" name="bEstablecimiento"> <input type="text" name="bMesa"> <input type="submit" value="Buscar" /> </p>
Y lo lleno de forma manual cuando aprieto buscar hace la consulta correctamente. Solo me resta pasar de los combos los valores.
-
Bueno hice una truchada por falta de conocimiento pero funciono. explico cambie el codigo
<p> <input id="IDseccion" type="hidden" name="bSeccion" > <input id="IDdepartamento" type="hidden" name="bDepartamento"> <input id="IDlocalidad" type="hidden" name="bLocalidad"> <input id="IDcircuito" type="hidden" name="bCircuito"> <input id="IDestablecimiento" type="hidden" name="bEstablecimiento"> <input id="IDmesa" type="hidden" name="bMesa"> <input type="submit" value="Buscar" /> </p>
y luego en lo evento de cada combo agregue por ejemplo en seccion
$('#IDseccion').val($('#SeccionID option:selected').text());
y como el ultimo combo no tenia evento agregue esto
$('#MesaID').change(function () { $('#IDmesa').val($('#MesaID option:selected').text()); });
ahi se llenan las variables y hago la consulta al controller que devuelve la vista ConsultarPadron y funciona
- Marcado como respuesta EnzoTuc40 lunes, 20 de mayo de 2019 22:57