none
Problemas con Jquery y MasterPage no funciona RRS feed

  • Pregunta

  • Hola que tal, espero me puedan ayudar con este inconveniente.

    Estoy trabajando en asp.net c#, resulta que tengo un textbox con la función que me filtra un gridview previamente cargado, el script si funciona cuando mi default,aspx no tiene una masterpage, pero cuando ya le agrego simplemente deja de funcionar, he estado investigando pero no se aun como resolver esto.

    mi código es el siguiente

    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
        <script src="Content/Scripts/jquery-1.10.1.min.js"></script>
        <script language="javascript" type="text/javascript">
            $(document).ready(function () {
    
                $('#txtfiltrar').keyup(function (event) {
                    var searchKey = $(this).val().toLowerCase();
                    $("#GridView1 tr td:nth-child(2)").each(function () {
                        var cellText = $(this).text().toLowerCase();
                        if (cellText.indexOf(searchKey) >= 0) {
                            $(this).parent().show();
                        }
                        else {
                            $(this).parent().hide();
                        }
                    });
                });
            });
        </script>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        
        <div class="right_col" role="main">
        <div class="input-group">
            <input class="form-control filtrar" id="txtfiltrar" name="txtfiltrar" type="text" placeholder="Buscar"/>
            
        </div>
            <div>
                <asp:GridView ID="GridView1" runat="server" CssClass="filtrar" AutoGenerateColumns="false">
                    <Columns>
                            <asp:BoundField DataField="COD_PRODUCTO" HeaderText="ID" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece" />
                            <asp:BoundField DataField="DESCRIPCION" HeaderText="DESCRIPCION" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" />
                            <asp:BoundField DataField="OBSERVACION" HeaderText="OBSERVACION" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" />
                            <asp:BoundField DataField="MEDIDOR" HeaderText="MEDIDOR" ItemStyle-CssClass="filtro centrar" HeaderStyle-CssClass="centrar" />
                            <asp:BoundField DataField="ESTADO" HeaderText="ESTADO" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" />
                            <asp:BoundField DataField="USUARIO" HeaderText="USUARIO" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece" />
                            <asp:BoundField DataField="FECHA" HeaderText="FECHA" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece" />
                            <asp:BoundField DataField="USUARIOM" HeaderText="USUARIOM" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece"/>
                            <asp:BoundField DataField="FECHAM" HeaderText="FECHAM" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece" />
                            <asp:ButtonField ButtonType="Image" HeaderText="EDITAR" CommandName="editar" ImageUrl="~/Content/img/edit.png" Text="EDITAR" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" />
                            <asp:ButtonField ButtonType="Image" HeaderText="ELIMINAR" CommandName="eliminar" ImageUrl="~/Content/img/delete1.png" Text="ELIMINAR" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" />
                        </Columns>
                </asp:GridView>
            </div>
            </div>
    </asp:Content>
    agradezco de antemano su ayuda.



    lunes, 15 de enero de 2018 17:16

Respuestas

  • hola

    si accedes al developer tools del browser (accedes con F12) no visualizas ningun error en el consola?

    ademas no puedes usar #GridView1 como selector, recuerda que asp.net puede cambiar el nombre, por eso se usa

    #<%=GridView1.ClientID%>

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 15 de enero de 2018 17:46
  • pero no tenias que cambiar txtfiltrar ya que es un control de html

    lo que comente solo aplica a los controles de asp.net

    el txtfiltrar queda como estaba$('#txtfiltrar'), solo aplicaba si usaras un textbox de asp.net

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    lunes, 15 de enero de 2018 21:35

Todas las respuestas

  • hola

    si accedes al developer tools del browser (accedes con F12) no visualizas ningun error en el consola?

    ademas no puedes usar #GridView1 como selector, recuerda que asp.net puede cambiar el nombre, por eso se usa

    #<%=GridView1.ClientID%>

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 15 de enero de 2018 17:46
  • <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> <script src="<%=ResolveClientUrl("~/CONTENT/SCRIPTS/jquery-1.10.1.min.js")%>"></script> <script language="javascript" type="text/javascript"> $(document).ready(function () { $('#<%=txtfiltrar%>').keyup(function (event) { var searchKey = $(this).val().toLowerCase(); $("#<%=GRVPP.ClientID%> tr td:nth-child(2)").each(function () { var cellText = $(this).text().toLowerCase(); if (cellText.indexOf(searchKey) >= 0) { $(this).parent().show(); } else { $(this).parent().hide(); } }); }); }); </script> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <div class="right_col" role="main"> <div class="input-group"> <asp:TextBox ID="txtfiltrar" CssClass="form-control" runat="server" placeholder="Buscar"></asp:TextBox> </div> <div> <asp:GridView ID="GRVPP" runat="server" CssClass="filtrar" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="COD_PRODUCTO" HeaderText="ID" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece" /> <asp:BoundField DataField="DESCRIPCION" HeaderText="DESCRIPCION" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" /> <asp:BoundField DataField="OBSERVACION" HeaderText="OBSERVACION" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" /> <asp:BoundField DataField="MEDIDOR" HeaderText="MEDIDOR" ItemStyle-CssClass="filtro centrar" HeaderStyle-CssClass="centrar" /> <asp:BoundField DataField="ESTADO" HeaderText="ESTADO" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" /> <asp:BoundField DataField="USUARIO" HeaderText="USUARIO" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece" /> <asp:BoundField DataField="FECHA" HeaderText="FECHA" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece" /> <asp:BoundField DataField="USUARIOM" HeaderText="USUARIOM" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece"/> <asp:BoundField DataField="FECHAM" HeaderText="FECHAM" ItemStyle-CssClass="desaparece" HeaderStyle-CssClass="desaparece" /> <asp:ButtonField ButtonType="Image" HeaderText="EDITAR" CommandName="editar" ImageUrl="~/CONTENT/img/edit.png" Text="EDITAR" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" /> <asp:ButtonField ButtonType="Image" HeaderText="ELIMINAR" CommandName="eliminar" ImageUrl="~/CONTENT/img/delete1.png" Text="ELIMINAR" ItemStyle-CssClass="centrar" HeaderStyle-CssClass="centrar" /> </Columns> </asp:GridView> </div> </div> </asp:Content>

    Modifique lo que me sugeriste pero aun no funciona y en consola no me muestra ningún error

    lunes, 15 de enero de 2018 19:01
  • pero no tenias que cambiar txtfiltrar ya que es un control de html

    lo que comente solo aplica a los controles de asp.net

    el txtfiltrar queda como estaba$('#txtfiltrar'), solo aplicaba si usaras un textbox de asp.net

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    lunes, 15 de enero de 2018 21:35
  • Gracias por la observación, ya lo corregí pero sigue sin funcionar. 
    martes, 16 de enero de 2018 19:40