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
Features
Download
Documentation
On StackOverflow | |
Licensing and Flavours
jqGrid is an open-source control registered 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 trust me when I say that all you need is on the free package!!
See the price list here. You can also access the paid versions website here. The feature set is a huge list and has an awesome community on Stackoverflow that replies to your questions in no time.
Columns
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 }]
Data
1. Refresh Grid
If you need to refresh the grid from code, just call:
$("#grid1").trigger("reloadGrid");
The tricky, and not too well documented part is if you want to refresh and select the desired page:
$("#grid1").trigger("reloadGrid", [{page:3}]);
This will refresh the grid 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.
NavBar
1. Add Custom Buttons to the NavBar
$('#grid1').navGrid('#grid1pager', { search: true, edit: true, add: true, del: true },
{}, {}, {}, { closeOnEscape: true, multipleSearch: true, closeAfterSearch: true });
$('#grid1').navSeparatorAdd("#grid1pager", { sepclass: 'ui-separator', sepcontent: '' });
$('#grid1').jqGrid('navButtonAdd', "#grid1pager", { caption: "", buttonicon:
"ui-icon-plusthick", onClickButton: function () { alert('Exporting!!!!!'); },
position: "last", title: "Export to Excel", cursor: "pointer" })
Search
1. Show the Advanced Search Dialog from an External Button
function OpenSearchDialog() {
$("#grid1").jqGrid(
'searchGrid', { multipleSearch: true, overlay: false });
}
2. Show the Filter Toolbar
The filter toolbar is a bar that appears right below the column captions that allow filtering by each column. To make this toolbar visible, use the following:
$('#grid1').jqGrid('filterToolbar',
{ stringResult: true, searchOnEnter: false });
Selection
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 it's easy than 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
.