none
Como hago la Busqueda despues de los filtros RRS feed

  • 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

    lunes, 20 de mayo de 2019 12:51

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

    lunes, 20 de mayo de 2019 13:57
  • 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.

    lunes, 20 de mayo de 2019 22:10
  • 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
    lunes, 20 de mayo de 2019 22:57