Click here to Skip to main content
15,888,600 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
My jquery is
$(document).ready(function () {
              var rows;
           var coldata;
           $('#txtSearch').keyup(function () {
               $('#<%=gvCompanyListing.ClientID%>').find('tr:gt(0)').hide();
               var data = $('#txtSearch').val();
               var len = data.length;
               if (len > 0) {
                   $('#<%=gvCompanyListing.ClientID%>').find('tbody tr').each(function () {
                       coldata = $(this).children().eq(1);
                       var temp = coldata.text().toUpperCase().indexOf(data.toUpperCase());
                       if (temp===0) {
                           $(this).show();
                       }
                   });
               } else {
                   $('#<%=gvCompanyListing.ClientID%>').find('tr:gt(0)').show();
               }

           });




And my html page is
ASP.NET
form id="form" runat="server" class="gridViewContainer">
        <input type="text" placeholder="Find" id="txtSearch" />
        <div style="height: 150px; width: 175px; overflow: auto;">
            <asp:GridView ID="gvCompanyListing" runat="server" AutoGenerateColumns="False" ShowHeader="False" GridLines="None">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:CheckBox ID="cbSelect" CssClass="gridCB" runat="server" ItemStyle-Width="10%" ></asp:CheckBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="CompanyInfo" SortExpression="CompanyInfo" ItemStyle-Width="92%"></asp:BoundField>
                </Columns>
            </asp:GridView>
        </div>
    </form>



And codebehind.cs page contains
if (!this.IsPostBack)
           {
               DataTable dt = new DataTable();
               dt.Columns.AddRange(new DataColumn[1] { new DataColumn("CompanyInfo") });

               dt.Rows.Add("BETA NAME");
               dt.Rows.Add("XEROX NAME");
               dt.Rows.Add("GAMMA NAME");
               dt.Rows.Add("ALFA NAME");
               dt.Rows.Add("EMILI NAME");
               dt.Rows.Add("MANUAL NAME");
               dt.Rows.Add("CATHERIN NAME");
               dt.Rows.Add("MARIA NAME");
               dt.Rows.Add("MILAN NAME");
               dt.Rows.Add("RAPHEL NAME");
               dt.Rows.Add("JACOB NAME");
               gvCompanyListing.DataSource = dt;
               gvCompanyListing.DataBind();
           }

my issue is on keypress event it filters the data,but it displays first data and searched data.
(eg:on clicking 'c' on text it displays 'BETA NAME; and 'CATHERIN NAME').
how i will solve the issue.
Posted
Updated 18-Jul-16 2:14am
v4
Comments
[no name] 18-Nov-15 6:58am    
When you say "displays first data and searched dat.", what does it mean. Elaborate it. Secondly you are searching "c" then it it is displaying "BETA NAME" and "CATHERINE NAME".

you can do this way .Hide all tr code change

XML
<script>
 $(document).ready(function () {
           var rows;
        var coldata;
        $('#txtSearch').keyup(function () {
            $('#<%=gvCompanyListing.ClientID%> tbody tr').hide();
            var data = $('#txtSearch').val();
            var len = data.length;
            if (len > 0) {
                $('#<%=gvCompanyListing.ClientID%>').find('tbody tr').each(function () {
                    coldata = $(this).children().eq(1);
                    console.log(coldata);
                    var temp = coldata.text().toUpperCase().indexOf(data.toUpperCase());
                    console.log(temp);
                    if (temp===0) {
                       alert("show");
                       console.log( $(this));
                        $(this).show();
                    }
                });
            } else {
            $('#<%=gvCompanyListing.ClientID%> tbody tr').hide();
                alert("hel;lo");
            }

        });
        });
 </script>
 
Share this answer
 
v2
Comments
Member 12133978 18-Nov-15 7:24am    
Thanku so much
kalsa 15-Jul-16 9:33am    
Good solution. Keep it dear. You save me. Really i said to thank you.
Anil Sharma1983 18-Jul-16 3:02am    
thank you
You can use this code to search in gridview without hide header.

JavaScript
$(document).ready(function () {
          var rows;
       var coldata;
       $('#txtSearch').keyup(function () {
           $('#<%=AspGrid.ClientID%>').find("tr:gt(0)").hide();
           var data = $('#txtSearch').val();
           var len = data.length;
           if (len > 0) {
               var gridHeader = $('#<%=AspGrid.ClientID%>').find('tbody th');
               $('#<%=AspGrid.ClientID%>').find('th').each(function (index) {
                   $('#<%=AspGrid.ClientID%>').find('tbody tr').each(function () {
                   coldata = $(this).find('td').children().eq(index);
                   var temp = coldata.text().toUpperCase().indexOf(data.toUpperCase());
                   if (temp === 0) {
                       $(this).show();
                   }
               });
               });

           } else {
           $('#<%=AspGrid.ClientID%> tbody tr').show();
           }

       });
       });
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900