Click here to Skip to main content
Click here to Skip to main content

Userful GridView ASP.NET

By , 31 Jan 2012
 
gv.JPG

Introduction

I tried to summrize the common feature which we generally want in asp.net GridView.

  1. Fixed hedder and scrollbar – using jQuery
  2. Check Uncheck all rows - using jQuery
  3. Sorting direction imgae indicator - just by code behind no CSS no Script
  4. Filter GridView row at client side - javascript

Using the code

This is just a code snips so it will not run at you end you need to include this codes to your project and probably need to make necessarily changes.

You need to include the jquery-1.4.4.min.js and ScrollableGridPlugin.js" in you prject. (I am uploding that with this article)

1. Fixed hedder and scrollbar – using jQuery

gv_scroll.JPG

gv_scroll.JPG

Script:
<script src="../Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
    <script src="../Scripts/ScrollableGridPlugin.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">

       // Check/ Uncheck all
        $(window).bind('load', function () {
            var headerChk = $(".chkHeader input");
            var itemChk = $(".chkItem input");
            headerChk.bind("click", function () {
                itemChk.each(function () { this.checked = headerChk[0].checked; })
            }
                   );
            itemChk.bind("click", function () { if ($(this).checked == false) headerChk[0].checked = false; });
        });


        // Fixing the hear for Scroll
       $(document).ready(function () {
            //Invoke Scrollable function.
            $('#<%=SearchResult.ClientID %>').Scrollable({
                ScrollHeight: 600,        
            });
        });


         //GV runtime filter
        function filter (term, GvId,SearchOn)
        {
            var SearchOn ='#'+SearchOn;
            var cellNr = $(SearchOn).find('input:checked').val();
            //alert(term);
            var suche = term.value.toLowerCase();
            var table = document.getElementById(GvId);
            var ele;
            for (var r = 0; r < table.rows.length; r++)
            {
                ele = table.rows[r].cells[cellNr].innerHTML.replace(/<[^>]+>/g,"");
                if (ele.toLowerCase().indexOf(suche)>=0 )
                    table.rows[r].style.display = '';
                else table.rows[r].style.display = 'none';
            }

         }

    </script>          
Code Behind: 
protected void Page_Load(object sender, EventArgs e)
    {

        try
        {
            if (!IsPostBack)
            {
                ViewState[FixInfo.SortColum] = " ";
                ViewState[FixInfo.SortDirection] = " ";
                GetPendingAds();

                //for GV runtime filter
                SearchTxt.Attributes.Add("onkeyup", "filter(this,'" + SearchResult.ClientID + "','" 
                    + SearchOn.ClientID + "')");

            }
        }
        catch (Exception ex)
        {
            LocalHelper.ShowError(ex.Message);
        }

    }

    protected void SearchResult_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            foreach (TableCell tc in e.Row.Cells)
            {
                if (ViewState[FixInfo.SortDirection].ToString().Length > 2)
                {
                    try
                    {
                        LinkButton lnkBtn = (LinkButton)tc.Controls[0];

                        if (lnkBtn != null)
                            if (ViewState[FixInfo.SortColum].ToString().Equals(lnkBtn.CommandArgument, StringComparison.InvariantCultureIgnoreCase))
                            {
                                System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();

                                img.ImageUrl = "~/Images/" + ViewState[FixInfo.SortDirection].ToString() + ".gif";
                                tc.Controls.Add(img);
                            }
                    }
                    catch
                    {
                    }

                }

            }
        }
    }

License

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

About the Author

Himanshu Thawait
Technical Lead www.igate.com
United States United States
Himanshu Thawait is from Pune INDIA, He is Currently Working with iGate Americas Inc. As a Technical Lead
 
Himanshu has more than 9+ yrs of experience in the IT industry working on Microsoft Technologies. He is involved in various project activities like designing the system and technical architecture,leading technical front and doing core development.He also has strong knowledge of Enterprise Business Application Domain.
 
Technical experience :C#, ASP.NET, WCF and Webservices, Biztalk 2010/2009/2006R2 with EDI(HIPPA).

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionRequest for entire codememberBridewin17-Apr-13 2:54 
AnswerRe: Request for entire codememberHimanshu Thawait17-Apr-13 4:53 
GeneralMy vote of 1memberMember 948470624-Dec-12 22:55 
GeneralRe: My vote of 1memberHimanshu Thawait27-Dec-12 6:06 
Questiongood movememberMr. Tapan Kumar10-Oct-12 9:56 
GeneralMy vote of 2memberMr. Tapan Kumar10-Oct-12 9:55 
GeneralMy vote of 5memberCS140111-Mar-12 18:18 
Questiondisplay mysqldata on gridviewmembersmp 23429-Feb-12 22:19 
QuestionMissing functionsmemberPaul M Cohen7-Feb-12 9:25 
AnswerRe: Missing functionsmemberthawait.himanshu8-Feb-12 5:47 
GeneralRe: Missing functionsmemberPaul M Cohen8-Feb-12 9:04 
GeneralRe: Missing functionsmemberthawait.himanshu8-Feb-12 11:05 
GeneralRe: Missing functionsmemberPaul M Cohen8-Feb-12 16:52 
SuggestionExt.netmemberEmad Mokhtar1-Feb-12 12:07 
GeneralRe: Ext.netmemberJason Vogel1-Feb-12 16:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web03 | 2.6.130617.1 | Last Updated 31 Jan 2012
Article Copyright 2012 by Himanshu Thawait
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid