none
Listar automáticamente cuando seleccione un item de un dropdownlist RRS feed

  • Pregunta

  • Buenas,

    Como puedo hacer que al seleccionar un item de un dropdowlist (factura), me liste los productos de esa factura.

    Las Facturas son cargadas deacuerdo al cliente seleccionado, la hice con un Json.

            Ventas2000Entities oVentas = new Ventas2000Entities();
    
            public ActionResult principalPlanteado()
            {
    
                ViewBag.Clientes = new SelectList(oVentas.Tb_Cliente, "Cod_cli", "Raz_soc_cli");
    
                var valor = Request["cboFacturas"];
    
                var producto = from f in oVentas.Tb_Factura
                               join df in oVentas.Tb_Detalle_Factura
                               on f.Num_fac equals df.Num_fac
                               join p in oVentas.Tb_Producto
                               on df.Cod_pro equals p.Cod_pro
                               where f.Num_fac == valor
                               select p;
    
    
                return View(producto.ToList());
            }
    
            public JsonResult ListadoFacturas(string id)
            {
                var facturas = from s in oVentas.Tb_Factura
                               where s.Cod_cli == id
                               select s;
    
                return Json(new SelectList(facturas.ToArray(), "Num_fac", "Num_fac"), JsonRequestBehavior.AllowGet);
            }
        }
      @Scripts.Render("~/bundles/jquery")
        <script type="text/javascript">
            $(function () {
                $('#cboClientes').change(function () {
                    $.getJSON('/Planteado/ListadoFacturas/' + $('#cboClientes').val(), function (data) {
                        var items = '<option>Seleccione una Factura</option>';
                        $.each(data, function (i, facturas) {
                            items += "<option value='" + facturas.Value + "'>" + facturas.Text + "</option>";
                        });
                        $('#cboFacturas').html(items);
                    });
                });
            });
        </script>

    Se puede usar Json para listar??

    Gracias de antemano!


    JC NaupaCrispín


    miércoles, 2 de julio de 2014 16:37

Respuestas

  • hola

    pero cuando invocas el action principalPlanteado() como sabes que factura esta seleccionada si es la primer pantalla que carga

    esta linea

     var valor = Request["cboFacturas"];

    no funciona

    deberias tomar por defecto la primer factura que obtengas asociada al primer cliente

    o sea seria por defecto el primer cliente y de este la primer factura

    o podrias hacer que no se muestre ningun producto, entonces cargas la lista de clientes en el combo y la opcion para que seleccione una factura y asi invocas y cargas siempre el grid por ajax

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 2 de julio de 2014 16:55
  • para generar la tabla por json se puede hacer pero asi como lo haces con el combo de facturas seras tu quien genere el html de la tabla

    o podrias usar una tabla compatible con jquery

    http://www.datatables.net/

    que permita asignar directo json para generar los items

    entonces si podrias usar el getJson para tomar los items de la tabla y asignarlos directo a este componente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 2 de julio de 2014 16:57

Todas las respuestas

  • hola

    pero cuando invocas el action principalPlanteado() como sabes que factura esta seleccionada si es la primer pantalla que carga

    esta linea

     var valor = Request["cboFacturas"];

    no funciona

    deberias tomar por defecto la primer factura que obtengas asociada al primer cliente

    o sea seria por defecto el primer cliente y de este la primer factura

    o podrias hacer que no se muestre ningun producto, entonces cargas la lista de clientes en el combo y la opcion para que seleccione una factura y asi invocas y cargas siempre el grid por ajax

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 2 de julio de 2014 16:55
  • para generar la tabla por json se puede hacer pero asi como lo haces con el combo de facturas seras tu quien genere el html de la tabla

    o podrias usar una tabla compatible con jquery

    http://www.datatables.net/

    que permita asignar directo json para generar los items

    entonces si podrias usar el getJson para tomar los items de la tabla y asignarlos directo a este componente

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 2 de julio de 2014 16:57