none
Ayuda con data table RRS feed

  • Pregunta

  • que tal amigos resulta que tengo que cargar un data table despues de que el usuario realiza una consulta; el problema es que no he podido .

    1.- este es el action result.

    public ActionResult GetOfertas_Result(int MtoProcedimientoId, int MtoProveedorId)
            {            
                var Result = (from MO in db.MtoOfertas
                              join MR in db.MtoRequerimientos on MO.MtoRequerimientoId equals MR.MtoRequerimientoId into group1
                              from g1 in group1.DefaultIfEmpty()
                              join MP in db.MtoProveedores on MO.MtoProveedorId equals MP.MtoProveedorId into group2
                              from g2 in group2.DefaultIfEmpty()
                              where MO.MtoProcedimientoId == MtoProcedimientoId
                              select new ResultadoOfertas
                              {
                                  MtoProveedorId = MO.MtoProveedorId,
                                  MtoOfertaId = MO.MtoOfertaId,
                                  Partida = g1.Partida,
                                  Gpo = MO.Gpo,
                                  Gen = MO.Gen,
                                  Esp = MO.Esp,
                                  Dif = MO.Dif,
                                  Var = MO.Var,
                                  Descripcion = g1.Descripcion,
                                  Licitante = g2.RazonSocial,
                                  PrecioOfertado = MO.PrecioOfertado,
                                  Descuento = MO.Descuento,
                                  Maximo = MO.MaximoOfertado,
                                  Minimo = MO.MinimoOfertado
                              }).OrderBy(o => o.Licitante).ThenBy(o => o.Gpo).ToList();
                
                return Json(new { data = Result }, JsonRequestBehavior.AllowGet);
    
            }

    ahora bien el js que ocupo para poder  carga la informacion es:

    $("#FrmBuscar").on('submit', function (e) {
        e.preventDefault();
        var idPro = $("#MtoProcedimientoId").val();
        var idProv = $("#MtoProveedorId").val();    
        $.ajax({
            cache: false,        
            type: "GET",
            url: "../Ofertas/GetOfertas_Result",
            contentType:"application/json; charset=utf-8",
            dataType: 'json',
            data: { MtoProcedimientoId: idPro, MtoProveedorId: idProv },
            success: function (data) {
                var column_data = JSON.parse(data);
                alert(column_data);
                console.log(data);
                table = $("#myTable").DataTable({
                    destroy: true,
                    "aaData": $.parseJSON(data),
                    "columns": [{ data: 'Partida' }, { data: 'Gpo' }]
                });                 
            },       
            error: function (err) {
                alert(err);
            }
        })
    });

    el error que me manda es el siguiente.

    SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data

    Alguna Idea de que estoy haciendo ma.

    Muchas Gracias.


    Horacio Xochitemol Bautista

    jueves, 17 de agosto de 2017 22:09

Todas las respuestas

  • Si no me equivoco, en lugar del JSON.parse(data) tienes que poner data.data (el primer data es el parametro del function, el segundo data el que pusiste en data=Result en el lado de C#).

    Para salir de dudas, ejecutalo con la depuracion habilitada en el navegador, pon un punto de ruptura al principio de la funcion success, y examina el contenido de la variable data, a ver que es lo que trae.

    viernes, 18 de agosto de 2017 14:33
  • Que tal Alberto como estas muchas gracias por contestar; te comento que indique lo que me pusiste y la conversion me regresa.

    [{"MtoOfertaId":1213,"MtoProveedorId":435,"Partida":1,"Gpo":"379","Gen":"885","Esp":"0339","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"AXMILAB, S.A. DE C.V.","PrecioOfertado":3.36,"Descuento":20,"Maximo":11633200,"Minimo":11633200},{"MtoOfertaId":1214,"MtoProveedorId":437,"Partida":null,"Gpo":"379","Gen":"885","Esp":"0339","Dif":"00","Var":"01","Descripcion":null,"Licitante":"BIOXINTEGRAL SERVICIOS, S.A. DE C.V.","PrecioOfertado":3.63,"Descuento":19,"Maximo":11633200,"Minimo":11633200},{"MtoOfertaId":1215,"MtoProveedorId":439,"Partida":1,"Gpo":"379","Gen":"885","Esp":"0339","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"CINVESTILAB, S.A. DE C.V.","PrecioOfertado":3.63,"Descuento":15.6,"Maximo":11633200,"Minimo":11633200},{"MtoOfertaId":1216,"MtoProveedorId":439,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"CINVESTILAB, S.A. DE C.V.","PrecioOfertado":28.07,"Descuento":18,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1217,"MtoProveedorId":441,"Partida":1,"Gpo":"379","Gen":"885","Esp":"0321","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE GLUCOSA EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE GLUCOSA, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE GLUCOSA EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 120 SEGUNDOS","Licitante":"CONSUMIBLES DC, S.A. DE C.V.","PrecioOfertado":3.63,"Descuento":17.36,"Maximo":11633200,"Minimo":11633200},{"MtoOfertaId":1218,"MtoProveedorId":441,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"CONSUMIBLES DC, S.A. DE C.V.","PrecioOfertado":28.07,"Descuento":18.2,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1219,"MtoProveedorId":100,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"DIAGNODISTRIBUTIONS, S.A. DE C.V.","PrecioOfertado":28.07,"Descuento":12,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1220,"MtoProveedorId":103,"Partida":1,"Gpo":"379","Gen":"885","Esp":"0339","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"DIAGNOQUIM, S. A. DE C.V.","PrecioOfertado":3.63,"Descuento":13.43,"Maximo":11633200,"Minimo":11633200},{"MtoOfertaId":1221,"MtoProveedorId":103,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"DIAGNOQUIM, S. A. DE C.V.","PrecioOfertado":28.07,"Descuento":13.95,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1222,"MtoProveedorId":443,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"DISTRIBUIDORA DE EQUIPO MÉDICO, S.A. DE C.V.","PrecioOfertado":28.07,"Descuento":18.3,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1223,"MtoProveedorId":181,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"GENESIS HEALTHCARE ADVISERS, S. A. DE C. V.","PrecioOfertado":28.07,"Descuento":5.15,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1224,"MtoProveedorId":245,"Partida":1,"Gpo":"379","Gen":"885","Esp":"0339","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"KABLA COMERCIAL, S.A. DE C.V.","PrecioOfertado":3.63,"Descuento":20.66,"Maximo":11633200,"Minimo":11633200},{"MtoOfertaId":1225,"MtoProveedorId":304,"Partida":1,"Gpo":"379","Gen":"885","Esp":"0339","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"MEXGLOBAL, S.A. DE C.V.","PrecioOfertado":3.63,"Descuento":15.15,"Maximo":11633200,"Minimo":11633200},{"MtoOfertaId":1226,"MtoProveedorId":304,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"MEXGLOBAL, S.A. DE C.V.","PrecioOfertado":28.07,"Descuento":11.68,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1227,"MtoProveedorId":444,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"MULTIEQUIPOS Y MEDICAMENTOS, S.A. DE C.V.","PrecioOfertado":28.07,"Descuento":3.8,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1228,"MtoProveedorId":323,"Partida":1,"Gpo":"379","Gen":"885","Esp":"0339","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"PASTEUR HEALTH CARE S.A. DE C.V.","PrecioOfertado":3.63,"Descuento":27.27,"Maximo":11633200,"Minimo":11633200},{"MtoOfertaId":1229,"MtoProveedorId":323,"Partida":2,"Gpo":"379","Gen":"885","Esp":"0347","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"PASTEUR HEALTH CARE S.A. DE C.V.","PrecioOfertado":28.07,"Descuento":30.53,"Maximo":3023950,"Minimo":3023950},{"MtoOfertaId":1230,"MtoProveedorId":329,"Partida":1,"Gpo":"379","Gen":"885","Esp":"0339","Dif":"00","Var":"01","Descripcion":"TIRA REACTIVA PARA LA DETERMINACION CUANTITATIVA DE COLESTEROL TOTAL EN SANGRE CAPILAR, COMPATIBLE CON EQUIPO MEDIDOR DE COLESTEROL TOTAL, QUE VISUALICE DE MANERA CUANTITATIVA LA CIFRA DE COLESTEROL TOTAL EN MG/DL. TIEMPO MAXIMO DE MEDICION DE 180 SEGUNDOS.","Licitante":"PHARMACUR, S.A. DE C.V","PrecioOfertado":7.2,"Descuento":0.01,"Maximo":11633200,"Minimo":11633200}]

    Saludos. gracias


    Horacio Xochitemol Bautista

    viernes, 18 de agosto de 2017 15:28
  • Pues así a simple vista parece un JSON perfectamente correcto. Al intentar "parsear" ese string, ¿te sale el error de carácter inesperado en fila 1 columna 2? Es extraño, porque no hay nada raro en esa posición. ¿Seguro que eso es lo que te llega en el momento en el que te sale el error?
    viernes, 18 de agosto de 2017 15:50
  • que tal mi amigo, hice los cambios que me comentaste y después de eso  me manda este error

    DataTables warning: table id=myTable - Requested unknown parameter '1' for row 1, column 1. For more information about this error, please see http://datatables.net/tn/4

    DataTables warning: table id=myTable - Requested unknown parameter '1' for row 2, column 1. For more information about this error, please see http://datatables.net/tn/4
    No he podido detectar que es, muchas gracias por la ayuda.

    Horacio Xochitemol Bautista

    viernes, 18 de agosto de 2017 15:54
  • Hola Buen dia,

    Para que carges una tabla dinamicamente en JS ( usando el formato de JSON ) es necesario usar el siguiente fragmento de codigo

    function CargarDataTable(sData) {
    
        var Result = null;
        var Obj = null;
        Result = sDdata.split("|");
        Obj = JQuery.ParseJSON(Result[1]);
    
        // Validamos que el Obj No este vacio 
    
        if (Obj = ! '[]') {
    
            // Llenamos la tabla en base al Obj JSON
    
            $('#TuIDTabla').append('<tr>' +
                '<tr> ' + Obl[0]['TuId'] + ' </tr> ' +
                '<tr> ' + Obl[0]['TuId'] + ' </tr> ' +
                '<tr> ' + Obl[0]['TuId'] + ' </tr> ' +
                '<tr> ' + Obl[0]['TuId'] + ' </tr> ' +
                '<tr> ' + Obl[0]['TuId'] + ' </tr> ' +
                '<tr> ' + Obl[0]['TuId'] + ' </tr> ' +
                '</tr>')
        } else if (Obj = '[]') {
            $('#TuIDTabla Tbody').empty();
        }
    
    }

    Esa seria la forma mas rapida de llenar tu tabla de el lado de JS ( cliente )

    SI tienes dudas, responde sobre esta respuesta y con gusto le damos continuidad amigo

    viernes, 18 de agosto de 2017 16:12
  • Hola Gracias por responder; pero la verdad no se como implementar lo que me comentas podrias echarme una mano, muchas gracias.

    Horacio Xochitemol Bautista

    martes, 22 de agosto de 2017 21:54
  • Que tal amigos ya logre mostrar los datos en el datatable; la pregunta aquí es como puedo dar formato a laca columnas; les dejo el código que puse y que funciona.

    $("button[btnName=Filtrar]").click(function (e) {
       table.clear().draw()//limpiamos la tabla
        e.preventDefault();    
        var Procedimiento = $("#NoLicitacion").val();
        var ProcedimientoId = $("#MtoProcedimientoId").val();
        var ProveedorId = $("#MtoProveedorId").val();        
        $.ajax({        
            url: "../Ofertas/GetOfertas_Result",
            type: 'GET',
            data: { MtoProcedimientoId: ProcedimientoId, MtoProveedorId: ProveedorId },
            dataType: 'json',
            cache: false,
            success: function (data) {            
                var resultado = $.parseJSON(JSON.stringify(data.data));
                console.log(resultado);            
                for (var i = resultado.length - 1; i >= 0; i--)
                {               
                    var rows = "<tr>"
                    + "<td>" + '<img src="/Content/images/Add.png" style="cursor:pointer; max-width:24px; max-height:24px;"></img>' + "</td>"
                    + "<td>" + resultado[i].Partida + "</td>"
                    + "<td>" + resultado[i].Gpo +'-'+ resultado[i].Gen + '-' +resultado[i].Esp +'-'+ resultado[i].Dif +'-'+ resultado[i].Var + "</td>"
                    + "<td>" + resultado[i].Descripcion + "</td>"
                    + "<td>" + resultado[i].Licitante + "</td>"
                    + "<td>" + resultado[i].PrecioOfertado + "</td>"
                    + "<td>" + resultado[i].Descuento + "</td>"
                    + "<td>" + resultado[i].Maximo + "</td>"
                    + "<td>" + resultado[i].Minimo + "</td>"
                    + "<td>" + '<button class="btn btn-primary"><i class="fa fa-trash-o"></i></button>'
                    + '<button class="btn btn-primary">Editar</button>' + "</td>"
                    + "</tr>";
                    $('#myTable tbody').append(rows);
                    //console.log(rows);
                }
                var table = $('#myTable').DataTable({
                    "bProcessing": true,
                    "bFilter": false,              
                });
            }
        });
    });

    Como Puedo darle formato de miles a las columnas que debe ser asi.

    saludos.


    Horacio Xochitemol Bautista

    jueves, 24 de agosto de 2017 18:58
  • Quizá lo más sencillo sea aplicar el formato en el lado servidor para que te llegue al cliente ya formateado. Puedes hacerlo en C# en la parte donde haces esto:

    PrecioOfertado = MO.PrecioOfertado,

    cambiándolo así:

    PrecioOfertado = MO.PrecioOfertado.ToString("c"),

    Donde la "c" indica el formato "currency", o bien puedes poner, por ejemplo, "###,###,##0.00" para forzar el formato como lo quieras.

    Esto presume que el campo PrecioOfertado de MO que lees desde la base de datos es de tipo numérico, mientras que el PrecioOfertado de la clase que devuelves al cliente como resultado del método es de tipo string (no numérico).

    viernes, 25 de agosto de 2017 6:51
  • Que tal Amigos gracia a la respuesta de Alberto me dio una idea y el código que use fue el siguiente

    public ActionResult GetOfertas_Result(int? MtoProcedimientoId, int? MtoProveedorId)
            {
                //var idpro = Convert.ToInt32((modal["Procedimiento"]));
                //var idproveedor = modal["ProveedorID"];
    
                var Result = (from MO in db.MtoOfertas
                              join MR in db.MtoRequerimientos on MO.MtoRequerimientoId equals MR.MtoRequerimientoId into group1
                              from g1 in group1.DefaultIfEmpty()
                              join MP in db.MtoProveedores on MO.MtoProveedorId equals MP.MtoProveedorId into group2
                              from g2 in group2.DefaultIfEmpty()
                              where MO.MtoProcedimientoId == MtoProcedimientoId
                              select new 
                              {
                                  MtoProveedorId = MO.MtoProveedorId,
                                  MtoOfertaId = MO.MtoOfertaId,
                                  Partida = g1.Partida,
                                  Gpo = MO.Gpo,
                                  Gen = MO.Gen,
                                  Esp = MO.Esp,
                                  Dif = MO.Dif,
                                  Var = MO.Var,
                                  Descripcion = g1.Descripcion,
                                  Licitante = g2.RazonSocial,
                                  PrecioOfertado = MO.PrecioOfertado,
                                  Descuento = MO.Descuento,
                                  Maximo = MO.MaximoOfertado,
                                  Minimo = MO.MinimoOfertado
                              }).OrderBy(o => o.Licitante).ThenBy(o => o.Gpo).ThenBy(o => o.Gen).ThenBy(o => o.Esp).ToList();
    
                List<ResultadoOfertas> ListaJson = new List<ResultadoOfertas>();
    
                foreach (var items in Result)
                {
                    ListaJson.Add(new ResultadoOfertas
                    {
                        MtoOfertaId = items.MtoOfertaId,
                        MtoProveedorId = items.MtoProveedorId,
                        Partida = items.Partida == null ? 0 : items.Partida,                    
                        Clave = items.Gpo +'-'+ items.Gen+'-' +items.Esp+'-'+items.Dif+'-'+items.Var,
                        Gpo = items.Gpo == null ? "" : items.Gpo,
                        Gen = items.Gen == null ? "" : items.Gen,
                        Esp = items.Esp == null ? "" : items.Esp,
                        Dif = items.Dif == null ? "" : items.Dif,
                        Var = items.Var == null ? "" : items.Var,
                        Descripcion = items.Descripcion == null ? "" : items.Descripcion,
                        Licitante = items.Licitante == null ? "" : items.Licitante,
                        PrecioOfertado = items.PrecioOfertado <= 0 ? "0" : items.PrecioOfertado.ToString("c"),
                        Descuento = items.Descuento <=0 ? "0" : items.Descuento.ToString("N2"),
                        Maximo = items.Maximo <= 0 ? "0" : items.Maximo.ToString("N0"),
                        Minimo = items.Minimo <= 0 ? "0" : items.Minimo.ToString("N0"),                  
                    });
                }
    
                
                return Json(new { data = ListaJson }, JsonRequestBehavior.AllowGet);            
            }

     ahora el problema es que dentro de la tabla que es generada dinamicamente hay una imagen que hace referencia al id del 

    MtoProveedorId 

    la idea es que al dar click en la imagen me muestre el detalle del registro seleccionado; lo intento de la siguiente manera pero no he podido acceder a la imagen. 

     $(function () {
            $("#myTable tbody img").click(function () {
                 alert($(this).attr("MtoOfertaId"));
       
        });
    Pero no logro Obtener el registro


    Horacio Xochitemol Bautista

    viernes, 25 de agosto de 2017 17:10