none
Ayuda con JQuery RRS feed

  • Pregunta

  • Buenos días a todos. 

    Bueno, les comento. Tengo un GridView que se enlaza a datos y muestra cierta info dependiendo de qué filtro seleccione el usuario. Una de las columnas es un tipo de clasificación la cual pueden ser Bajo, Medio, Alto y Extremo.

    Lo que quiero hacer mediante JQuery es ocultar las filas que el usuario indique.

    Tengo esto (todos se marcan chequeado por defecto).

    <ul><label><input type="checkbox" runat="server" checked="checked" id="CbBajo">Bajo</label></ul>
    <ul><label><input type="checkbox" runat="server" checked="checked" id="CbMedio">Medio</label></ul>
    <ul><label><input type="checkbox" runat="server" checked="checked" id="CbAlto">Alto</label></ul>
    <ul><label><input type="checkbox" runat="server" checked="checked" id="CbExtremo">Extremo</label></ul>

    Si el usuario saca el check a Bajo, entonces que se muestren todas las demás que están chequeadas....

    Acá tengo una función

    <script type="text/javascript">
            function Filtro() {
                var m1 = "";
                var m2 = "";
                var m3 = "";
                var m4 = "";
                if (document.getElementById('CbBajo').checked == false) {
                    m1 = "ocultar";
                }
                if (document.getElementById('CbMedio').checked == false) {
                    m2 = "ocultar";
                }
                if (document.getElementById('CbAlto').checked == false) {
                    m3 = "ocultar";
                }
                if (document.getElementById('CbExtremo').checked == false) {
                    m4 = "ocultar";
                }
                $("#DgvDatos > tbody  > tr").each(function() {
                    $td=$(this).find("td");
                    if($td.text() == "Bajo" && m1 == "ocultar"){
                        $(this).css("display", "none");
                    }
                    if($td.text() == "Medio" && m2 == "ocultar"){
                        $(this).css("display", "none");
                    }
                    if($td.text() == "Alto" && m3 == "ocultar"){
                        $(this).css("display", "none");
                    }
                    if($td.text() == "Extremo" && m4 == "ocultar"){
                        $(this).css("display", "none");
                    }
                });
            }
        </script> 

    La verdad es que el navegador no arroja ningún error pero tampoco al sacar el check al checkbox no se actualiza la tabla (gv)...

    algo que me haga falta??? La verdad que no soy para nada experto en JQuery.

    Muchas gracias a todos. Espero sus comentarios.

    Saludos

    martes, 15 de octubre de 2019 11:25

Todas las respuestas

  • Buenas, depurando un poco, me encontré que esta línea

    $td = $(this).find("td");

    selecciona todas las td que tiene la fila, entonces tengo que ir al detalle y decirle que obtenga el texto de la celda 7, por ejemplo..

    como puedo hacer eso???

    Gracias!!!!

    martes, 15 de octubre de 2019 11:51
  • Estimados, ya lo resolví.

    hice esto.

    $td = $(this);
    $td.html(); //así obtengo el texto de la celda
    
    //y para ocultarlo
    
    var $rows = $("#DgvDatos tr");
    $rows.eq($td.parent().index()).hide();
    //obtengo el indice de la fila a la cual pertenece la celda, dicho indice lo paso para que se oculte.
    

    Saludos.

    martes, 15 de octubre de 2019 14:12