I'll use this post as a repository of quick tips so I'll be updating it on a regular basis... keep posted!

Get it!

The blog
On StackOverflow

Licensing and Flavours

jqGrid is an open-source control registed under the GPL and MIT lincenses.
Basically this means that it’s FREE! and you can do quite anything with it.
Read more about this here.

If you want to use the “side” versions of this control, specially wrapped and packaged for PHP, ASP.net Webforms and ASP.net MVC then you have to pay for them… but rust me when I say that all you need is on the Free package!!
See the price list here
You can also access the payed versions website here.

The feature set is a huge list and has a awsome comunity on Stackoverflow that reply to your questions in no time.


1. Hide a column

I'm putting this on here just because it's not the instinctive visible, it's called hidden!
colModel: [{ name: 'colName', hidden: true }]


1. Refresh grid

If you need to refresh the grid from code just call:

The tricky, and not to well documented part is if you want to refresh and select the disired page:
$("#grid1").trigger("reloadGrid", [{page:3}]);
This will refresh the frid and show it on page 3.

With this you can refresh the current page:
var currentPage = $('#grid1').getGridParam('page');
$("#grid1").trigger("reloadGrid", [{page: currentPage }]);

You can also keep the current selection:
$("#grid1").trigger("reloadGrid", [{current:true}]);

Note that both page and selection settings can be used together.


1. Add custom buttons to the NavBar

/* Add this line to allow advanced search using the toolbar button */
$('#grid1').navGrid('#grid1pager', { search: true, edit: true, add: true, del: true }, {}, {}, {}, { closeOnEscape: true, multipleSearch: true, closeAfterSearch: true });

/* Add this line to include a separator between buttons */
$('#grid1').navSeparatorAdd("#grid1pager", { sepclass: 'ui-separator', sepcontent: '' });

/* Add this line to include custom buttons on the toolbar */
$('#grid1').jqGrid('navButtonAdd', "#grid1pager", { caption: "", buttonicon: "ui-icon-plusthick", onClickButton: function () { alert('Exporting!!!!!'); }, position: "last", title: "Export to Excel", cursor: "pointer" })


1. Show the Advanced Search dialog from an external button

function OpenSearchDialog() {
          'searchGrid', { multipleSearch: true, overlay: false });

2. Show the filter toolbar

The filter toolbar is a bar that appears right bellow the column captions that allow filtering by each column. To make this toolbar visible use the following:
            { stringResult: true, searchOnEnter: false });


1. Get the ID of the selected row

$('#grid1').jqGrid('getGridParam', 'selrow')

2. Get the row data

var rowData = $("#grid1").jqGrid('getRowData', rowid);
rowid: is the id value set on the data source, NOT the index of the row.

This returns an object with the column names and value like:
{name="alex", address="here and there", age=34}

so its easy then the get a value using:
var myName = rowData.name;

Be aware that the object will only have the columns configured on the colModel.Everything that may come on the datasource won't appear here.
If you want to have values here that you don't want to show on the grid you must add the column to the colModel collection and set it to hidden: true