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

Resizable ASP.NET Gridview Columns using Jquery

, 14 Apr 2012
Rate this:
Please Sign up or sign in to vote.
This tip explains how to use jQuery's plug-in colResizable to implement client-side column resizing in an ASP.NET GridView.

Introduction

This tip explains how to use jQuery's plug-in colResizable to implement client-side column resizing in an ASP.NET GridView.

Using the Code

In addition to colResizable, I also use Jquery cookie plugin to store columns width in a cookie, so that ASP.NET postback won't reset column width. Now, download and include the jQuery, cookie and colResizable JavaScript files as follows:

<script type="text/javascript" src="scripts/jquery-latest.js"/>
<script src="/Scripts/colResizable-1.3.min.js" type="text/javascript"/>
<script src="/Scripts/jquery.cookie.js" type="text/javascript"/>  

Initialize the table width from cookie and colResizable plugin when the document is ready, using the code below:

$(document).ready(function() 
{ 
    if ($.cookie('colWidth') != null) {
        var columns = $.cookie('colWidth').split(',');
        var i = 0;
        $('.GridViewStyle th').each(function () {
            $(this).width(columns[i++]);
        });
    }
 
    $(".GridViewStyle").colResizable({
        liveDrag: true,
        gripInnerHtml: "<div class='grip'></div>",
        draggingClass: "dragging",
        onResize: onSampleResized
    }); }); 

A callback function onSampleResized will be fired when the user has ended dragging a column anchor altering the previous table layout. It will read columns width and store them in a cookie.

var onSampleResized = function (e) {
    var columns = $(e.currentTarget).find("th");
    var msg = "";
    columns.each(function () { msg += $(this).width() + ","; })
    $.cookie("colWidth", msg);
};  

Here is an ASP.NET Gridview.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
DataKeyNames="Id" GridLines="None" CssClass="GridViewStyle">
<Columns>
......
...... 
<Columns>
</asp:GridView> 

The final output can be seen here:

Summary

This tip showed how to Resize ASP.NET gridview using Jquery.

License

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

About the Author

Farooq Kaiser
Software Developer (Senior) http://www.Fairnet.com
Canada Canada
12+ years of complete software development life cycle experience for web based applications and multi-tier client-server desktop, primarily using LINQ, WCF, WWF, C#, ASP.NET, XML, XSLT, AJAX, Winforms,Visual Basic, JavaScript, JQuery, Google APIs, C++, VB.NET, C, ATL/COM, Open XML. Extensively involved in the requirement analysis, feasibility study, conceptualization, planning, architecture/design, configuration, development, quality assurance, implementation and release of the software products.

Comments and Discussions

 
QuestionResizing Columns PinmemberShaHam1120-Nov-13 0:07 
Questionabout gridview resizing Pinmemberkamleshnada18-Feb-13 19:25 
QuestionHow to reset the gridview columns to its default size on double clicking to the gridview lines? PinmemberMember 933240112-Feb-13 19:11 
QuestionDoesn't work after asynchronous postback when the GridView is in an UpdatePanel Pinmemberyashugg6-Feb-13 18:03 
AnswerRe: Doesn't work after asynchronous postback when the GridView is in an UpdatePanel PinmemberGNDNeth9-Jan-14 15:48 
Questionadjusting gridview width manually by the user Pinmemberaassaahh6-Oct-12 7:54 
GeneralMy vote of 3 PinmemberSanjay K. Gupta17-Sep-12 3:03 
QuestionDoesn't work after asynchronous postback when the GridView is in an UpdatePanel PinmemberSteverey422-Aug-12 20:27 
AnswerRe: Doesn't work after asynchronous postback when the GridView is in an UpdatePanel PinmemberSteverey427-Aug-12 12:41 
GeneralRe: Doesn't work after asynchronous postback when the GridView is in an UpdatePanel Pinmemberyashugg6-Feb-13 18:02 
GeneralRe: Doesn't work after asynchronous postback when the GridView is in an UpdatePanel Pinmemberj chakradhar rao25-Mar-13 4:08 
GeneralRe: Doesn't work after asynchronous postback when the GridView is in an UpdatePanel Pinmembermac_sak26-Nov-13 20:18 
GeneralRe: Doesn't work after asynchronous postback when the GridView is in an UpdatePanel Pinmemberzainulaabdin8-Mar-14 17:07 
QuestionThis script wont works on FF 13.0.0.1 PinmemberMember 806778926-Jun-12 23:36 
AnswerRe: This script wont works on FF 13.0.0.1 PinmemberFarooq Kaiser27-Jun-12 7:28 
QuestionGreat idea! my vote of 5! but little problems on resizing TemplateFields Pinmemberstefan999913-Jun-12 0:47 
the grid looses all formats in editmode....
and I dont't find the problem.....
 
Another Problem is to set the sizes of several textboxes or dropdownlists to the resized gridcolumns.
I would be happy if you could help me.
QuestionGood code!! can these be used with multiple girds on page. PinmemberMember 45166824-Jun-12 10:51 
AnswerRe: Good code!! can these be used with multiple girds on page. PinmemberFarooq Kaiser4-Jun-12 11:40 
QuestionGreat idea! 5 from me Pinmembergstolarov24-Apr-12 7:49 
GeneralMy vote of 3 PinmemberFrewCen15-Apr-12 3:45 
QuestionCan you attach source code PinmemberDorababu74313-Apr-12 19:12 
AnswerRe: Can you attach source code PinmemberFarooq Kaiser14-Apr-12 12:46 
GeneralMy vote of 5 PinmemberJustin Cooney13-Apr-12 13:57 

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

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.140721.1 | Last Updated 14 Apr 2012
Article Copyright 2012 by Farooq Kaiser
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid