none
Consulta sobre checkbox RRS feed

  • Pregunta

  • Buenas tardes:

    es mi primer post a esta gran comunidad en la cual me estoy acostumbrando.

    estoy desarrollando actualmente en MVC y tengo actualmente una grilla la cual se llena de manera dinamica con los datos de la BD y lo que quiero y que no he podido hacer es que al momento de obtener los resultados en la grilla este me obtenga el id de la grilla seleccionada mediante un checkbox que cargo dentro de la grilla.

    dejo el siguiente codigo para ver si me pueden ayudar:


    function loadAsignacionCaso() {
    
    
            var objJSON = {
                codReq: $('#codReq').val(),
                producto: $('#producto').val()
            };
            jQuery.ajax({
                type: "POST",
                url: "/Requerimientos/getAsignacionCaso",
                contentType: "application/json; charset=utf-8",
                data: $.toJSON(objJSON),
                dataType: "json",
                success: function (msg) {
                    if (msg.length == undefined) {
                        msg = msg.d;
                    }
                    if (msg.length > 0) {
                        var registros = "";
                        var header = "<br/><div id ='asd' runat='server' class=\"headTitle_b\"></div>";
                        var tbl = " <table cellpadding=\"0\" cellspacing=\"0\" width=\"1020px\" border=\"0\" class=\"display\" id=\"tblReq\">"
                        tbl += "<thead id=\"hdr\">";
                        tbl += "<tr>";
                        tbl += "<th nowrap='nowrap'>Cod.plan</th>";
                        tbl += "<th nowrap='nowrap'>Titulo plan</th>";
                        tbl += "<th nowrap='nowrap'>Version</th>";
                        tbl += "<th nowrap='nowrap'>Canal</th>";
                        tbl += "<th nowrap='nowrap'>Cod.caso</th>";
                        tbl += "<th nowrap='nowrap'>Titulo caso</th>";
                        tbl += "<th nowrap='nowrap'>Criticidad</th>";
                        tbl += "<th nowrap='nowrap'><input type='checkbox' id='checkHead' />Seleccionar</th>";
                        tbl += "</tr>";
                        tbl += "</thead>";
                        tbl += "<tbody  id=\"registros\"></tbody>";
                        tbl += "</table>";
                        $('#divResultados').html(header + tbl);
                        $('#registros').html('');
                        var oTable;
                        for (var ugc in msg) {
                            registros += "<tr>";
                            registros += "<td nowrap='nowrap'>" + msg[ugc].Codigo + "</td>";
                            registros += "<td nowrap='nowrap'>" + msg[ugc].Titulo + "</td>";
                            registros += "<td nowrap='nowrap'>" + msg[ugc].Version + "</td>";
                            registros += "<td nowrap='nowrap'>" + msg[ugc].Canales.descripcion + "</td>";
                            registros += "<td nowrap='nowrap'>" + msg[ugc].CCasoPrueba.Codigo + "</td>";
                            registros += "<td nowrap='nowrap'>" + msg[ugc].CCasoPrueba.TituloDelCasoDePrueba + "</td>";
                            if (msg[ugc].CCasoPrueba.Criticidad != 0) {
                                registros += "<td nowrap='nowrap'>SI</td>";
                            } else {
                                registros += "<td nowrap='nowrap'>NO</td>";
                            }
                            registros += "<td align='left' nowrap='nowrap'><input type='checkbox' class='chcktbl' /></td>";
                            //registros += "<td nowrap='nowrap' align='center'><a onclick=\"showreq('" + msg[ugc].idRequerimiento + "')\"><img  alt=\"\" src=\"../../Content/icons/user_edit.png\" height=\"16px\" width=\"16px\" title='Editar Requerimiento' /></a>&nbsp;&nbsp;&nbsp;";
                            //                        registros += "<a class='tooltip' title='Historial de requerimiento' onclick=\"showHistorial('" + msg[ugc].idRequerimiento + "','" + msg[ugc].codigo + "','" + msg[ugc].titulo + "')\"><img  alt=\"\" src=\"../../Content/icons/Notas.png\" height=\"16px\" width=\"16px\" /></a></td>";
                            registros += "</tr>";
                            //                        alert(msg[ugc].Observaciones);
                        }
                        if (typeof oTable != 'undefined') {
                            oTable.fnDestroy();
                            oTable = null;
                        }
                        $("#registros").html(registros);
    
                        $('#divResultados').show('fast');
                        $('#divBotonera').show('fast');
                        oTable = $('#tblReq').dataTable({
                            "bDestroy": true,
                            "bJQueryUI": true,
                            "sPaginationType": "full_numbers"
                        });
                        $('#tblReq').css("width", "1020px");
                    } else {
                        Sexy.alert('<h2>Asignaci&oacute;n de casos</h2><br/>No se encontraron registros');
                        $('#divResultados').hide();
                        $('#divBotonera').hide();
                    }    
                },
                error: AjaxFailed
            });
        }

    y la ultima consulta que tambien va de la mano a esta es que no he logrado que al momento de deseleccionar una de las casillas de los checkbox se deseleccione de manera automatica el check que selecciona todas las filas que hallan en el gridview:

     $('#checkHead').live('click', function () {
                $('.chcktbl').attr('checked', ($(this).is(':checked')) ? true : false);

    Agradesco de antemano la ayuda que me puedan prestar para resolver mis dudas y asi aprender mas de este lenguaje que veo que es bastante agradable y te facilita la vida de manera increible


    lunes, 3 de febrero de 2014 20:43

Todas las respuestas

  • hola

    pero porque lo trabjas de esa forma, queda muy feo el codigo

    deberias hacer que el $.ajax invoque a un action y este devuelva un partialview con el hml de la tabla que injectas en un div que tendrias fijo en algun parte de la pagina donde mostrar la tabla

    pero no generas el html en el success del $.ajax eso queda feo

    aqui

    http://social.msdn.microsoft.com/Forums/es-ES/7ed40821-e87b-4779-bf81-f919cebfde36/actualizar-solo-contenido-de-plantilla-mvc-4?forum=aspnetmvces

    planteo justamente esto

    entonces al tener una partialview podrias asignarle datos para crear la tabla y definir en el model que check se debe marcar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 3 de febrero de 2014 21:26