Skip to main content

How To- Search records or data in gridview using jQuery



First take a look on our problem or requirement for search record in gridview by using jquery

In previous Post I was Explained about How to  Use
UpdateProgress Control In Asp.Net with ProgressTemplate

In this Example I will Explain How To- Search records or data in Gridview using jQuery
with out Postback or client side .

Grdiview Data

As you can see on above image, there is a Gridview which is populated with records and a 
 Textbox with aSearch button. Our requirment is when user enter some text in 
 Textbox and click on the Search button, filter the records from Gridview on any of the column.
For example:- "ma" is entered then only those rows should be visible which have "ma" in any of the column. It can be in ID, First Name, Last Name or Email ID column.
Filtered Data
After understanding the acquirement, now take a look on ASPX page markup.
ASPX page mark up

<div style="padding-left: 10px">
       <asp:Label ID="lblSearch" runat="server" 
      Text="Search Text : " Font-Bold="true"></asp:Label> 
       <asp:TextBox ID="txtSearch" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Text="Search" />
 <asp:Label ID="lblMessage" runat="server" Text="No Record Found" 
Font-Bold="true" ForeColor="Red" style="display:none"></asp:Label>
         <asp:GridView ID="grdDemoGrid" runat="server"
           AutoGenerateColumns="False" 
            DataKeyNames="ID" DataSourceID="SqlDataSource1"
 Width="500px" style="margin-top:10px">
            <HeaderStyle CssClass="GridHeader" />
            <RowStyle CssClass="GridRow" />
            <AlternatingRowStyle CssClass="GridAltRow" />
            <Columns>
                <asp:BoundField DataField="ID" HeaderText="ID" 
                   ReadOnly="True" 
                    SortExpression="ID" />
        <asp:BoundField DataField="FName" HeaderText="First Name"
 SortExpression="FName" />
        <asp:BoundField DataField="LName" HeaderText="Last Name"
 SortExpression="LName" />
       <asp:BoundField DataField="Email" HeaderText="Email Id"
 SortExpression="Email" />
            </Columns>
          </asp:GridView>
 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:TestTableConnectionString %>" 
 SelectCommand="SELECT [ID], [FName], [LName], [Email] FROM [UserInfo]">
 </asp:SqlDataSource>
    </div>
jQuery/ Java Script Section with CSS

<style type="text/css">
       .GridHeader
        {
            background-color: #808080;
            color: #ffffff;
            font-weight: bold;
            font-size: 15px;
        }
        .GridRow
        {
            background-color: #ffffff;
            font-size: 13px;
        }
        .GridAltRow
        {
            background-color: #d3d3d3;
            font-size: 13px;
        }
    </style>
 <script type="text/javascript"
  src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
</script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#<%=btnSearch.ClientID %>').click(function (e) {
                SearchGridData();
                e.preventDefault();
            });
        });
        function SearchGridData() {
            var counter = 0;
        //Get the search text
    var searchText = $('#<%=txtSearch.ClientID %>')
    .val().toLowerCase();
         //Hide No record found message
            $('#<%=lblMessage.ClientID %>').hide();
            //Hode all the rows of gridview
            $('#<%=grdDemoGrid.ClientID %> tr:has(td)').hide();
            if (searchText.length > 0) {
              //Iterate all the td of all rows
 $('#<%=grdDemoGrid.ClientID %> tr:has(td)').children()
 .each(function ()
 {
      var cellTextValue = $(this).text().toLowerCase();
         //Check that text is matches or not
        if (cellTextValue.indexOf(searchText) >= 0) {
          $(this).parent().show();
                counter++;
            }
                });
                if (counter == 0) {
                    //Show No record found message
                    $('#<%=lblMessage.ClientID %>').show();
                }
            }
            else {
                //Show All the rows of gridview
                $('#<%=grdDemoGrid.ClientID %> tr:has(td)').show();
            }
        }
    </script>
I hope this article will be helpful for you. I would like to have any feedback from you.
 Your valuable feedback, question, or comments about this article are always welcome.

Comments

Popular posts from this blog

How to send mail asynchronously in asp.net with MailMessage

With Microsoft.NET Framework 2.0 everything is asynchronous and we can send mail also asynchronously. This features is very useful when you send lots of bulk mails like offers , Discounts , Greetings . You don’t have to wait for response from mail server and you can do other task . By using     SmtpClient . SendAsync Method (MailMessage, Object)    you need to do  System.Net.Mail has also added asynchronous support for sending email. To send asynchronously, you need need to Wire up a SendCompleted event Create the SendCompleted event Call SmtpClient.SendAsync smtpClient.send() will initiate the sending on the main/ui  thread and would block.  smtpClient.SendAsync() will pick a thread from the .NET Thread Pool and execute the method on that thread. So your main UI will not hang or block . Let's create a simple example to send mail. For sending mail asynchronously you need to create a event handler that will notify that mail success...

How to hide url parameters in asp.net

There are different ways to Hide the URL in asp.net , you can choose any one from bellow options . Previously I was Explained about the  Difference between Convert.tostring and .tostring() method Example  ,   Reasons to use Twitter Bootstrap , How to Register AJAX toolkit in web.config file in asp.net a) Using Post Method b) Using Of Session . c) URL Encoding & decoding process . d) Using Server.Transfer() instead of Response.Redirect() method (1)Use a form and POST the information. This might require additional code in source pages, but should not require logic changes in the target pages (merely change Request.QueryString to Request.Form). While POST is not impossible to muck with, it's certainly less appealing than playing with QueryString parameters. (2)Use session variables to carry information from page to page. This is likely a more substantial effort compared to (1), because you will need to take session variable checking into account...

View online files using the Google Docs Viewer

Use Google Docs Viewer for Document viewing within Browser I was looking for a way to let users see Microsoft Word Doc or PDF files online while using my application without leaving their browser without downloading files and then opening it to view with Word or PDF viewer . I was looking for some way out either via any PHP or Microsoft.NET libraries, did some googling on that; but later on I just got an idea that google already has all code written for me.. when I have any email attachment in PDF or DOC or DOCX google does it for me ..! Even while searching I can see PDFs by converting them in HTML. So I just googled it up and found that Google already has this ability that we can use Google Docs Viewer without any Google Account Login . YES that's true no Google Account login is required. It's damn simple and easy. Just pass document path as attachment as parameter and we are done. Google Docs Viewer gives us ability to embed PDF, DOC/DOCX, PPT, TIFF:...