======
jqGrid is a popular jQuery Plugin for displaying and editing data in tabular form. It has some other more sophisticated features, like subgrids, TreeGrids, grouping and so on.
jqGrid was developed mostly by Tony Tomov in the past and it was available under MIT/GPL-licences till the version 4.7.0 published Dec 8, 2014 (see here). Short time after that the license agreement was changed (see here) and new 4.7.1 version was published.
The code from the GitHib repository is the fork of jqGrid 4.7.0 - the latest version available under MIT/GPL-licences. It will be provided under MIT/GPL-licences.
Below you can find short description of new features and bug fixes implemented in free jqGrid 4.10.0 (compared with version 4.9.2). The version is developed by Oleg Kiriljuk, alias Oleg on the stackoverflow and OlegK on trirand forum.
Read Wiki for more detailed information about the features of free-jqGrid.
Free jqGrid can be used for free. We still ask to contribute the development by donating via PayPal, if one have the possibility for it. One can donate by clicking on the following button or by sending money via Paypal to oleg.kiriljuk@ok-soft-gmbh.com with the comment "free jqGrid".
One can install the package with respect of bower by using "bower install free-jqgrid", with respect of npm by using "npm install free-jqgrid" or from NuGet by using "Install-Package free-jqGrid".
Free jqGrid is published on cdnjs and jsDelivr CDN. So one can use it directly from Internet by including for example
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.10.0/css/ui.jqgrid.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.10.0/js/i18n/grid.locale-de.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/free-jqgrid/4.10.0/js/jquery.jqgrid.min.js"></script>
It somebody want to test the latest version of free jqGrid, one can load it directly from GitHib using RawGit service:
<link rel="stylesheet" href="https://rawgit.com/free-jqgrid/jqGrid/master/css/ui.jqgrid.css">
<script src="https://rawgit.com/free-jqgrid/jqGrid/master/js/i18n/grid.locale-de.js"></script>
<script src="https://rawgit.com/free-jqgrid/jqGrid/master/js/jquery.jqgrid.src.js"></script>
All other language files and plugins are avalable from CDN too. See the wiki article for more details about the usage of free jqGrid from CDNs and RawGit.
The package is published on WebJars and it's deployed on Maven Central too.
Remark: the above URLs will be available after publishing the release of the version of 4.10.0
- New
abortAjaxRequest
method, which allows to abort pending Ajax request (before receiving the answer from the server). See the issue for more details. - New option
threeStateSort:true
is implemented. It change the default behavior on click on the column header. Instead of toogleing between ascending and descending sorting, it will be changed between three states: ascending, descending and unsorted. See the pull request and the demo for more details. - New option
multiPageSelection:true
is implemented. It works in combination withmultiselect:true
option. It allows 1) select some rows during loading just by filling the rowids inselarrrow
parameter 2) the parameterselarrrow
can hold now selected rows from multiple pages. Selection of some rows on one page, changing of the page, selection some rows on another page, returting to the previous page hold all previously selected rows. Sorting don't clear the selection. See the answer and the demo for more details.* New optionmaxHeight
allows to setmax-height
CSS property on bdiv. The new option can be good combined with defaultheight: "auto"
option. For example the optionmaxHeight: 400
have no influence in case of small number of rows, but it reduces the maximal height of body of the grid (bdiv) to400px
, the grid get not so many place on the page and the user have to use horizontal scroll bar (created on demand). See the old answer for more details. - New option
quickEmpty:"quickest"
is implemented and is default. It improves the performance of rewdrawing the grid. One can usequickEmpty:true
to switch back to the previous behavior and to usequickEmpty:false
to get back to the behavior of jqGrid 4.7. - New options of
editRow
allows easy to implement starting of inline editing inside ofonSelectRow
orondblClickRow
and setting the focus on the cell which the user clicked. See the answer and the demo for details. - New callback
subGridOptions.hasSubgrid
is implemented. It allows to remove "+" icon of subgrid from some rows which definitively have no subgrids (have empty subgrids). See the answer and the demo for more details. - Essential improvement of performance of frozen columns espesially in scenario where the grid have many hidden rows (like data grouping with
groupCollapse: true
option ingroupingView
). The parameters of the eventjqGridResetFrozenHeights
allows to elliminate unneeded work. See discussion the pull request for more details. One can compare the performance of expanding/collapsing in the demo with the same demo, but which uses free jqGrid 4.9.2. One can increase the size of rows from 100 to 1000 for example (ingetGridData(100)
) and compare the both demos. One can compare the time for resizing the columns in both grids. - Essential improvement of performance of
autoResizeColumn
method used inautoResizeColumn
andautoResizeAllColumns
methods and in case of usage ofautoresizeOnLoad: true
option.
- Bug fix in usage of
sortable:true
(sortableColumns
method) - New
abortAjaxRequest
method, which allows to abort pending Ajax request (before receiving the answer from the server) - Bug fix in processing of sorting by the date
"0000-00-00"
- Bug fix to process of Enter on navigator buttons only. It can be important in case of usage custom elements in the navigator bar.
- Bug fix in processing of filters of Advainced Searching after Reset button is previously pressed.
- Fix of the height of column resizer
- New option
multiPageSelection:true
is implemented. It works in combination withmultiselect:true
option. It allows 1) select some rows during loading just by filling the rowids inselarrrow
parameter 2) the parameterselarrrow
can hold now selected rows from multiple pages. Selection of some rows on one page, changing of the page, selection some rows on another page, returting to the previous page hold all previously selected rows. Sorting don't clear the selection. - Performance improvements of
$.jgrid.parseDate
- New callback
subGridOptions.hasSubgrid
is implemented. It allows to remove "+" icon of subgrid from some rows which definitively have no subgrids (have empty subgrids). - Bug fix in
GridToForm
method in parsing of data, which contains 
symbol - Update of
grid.inlinedit.js
to allow overwrite$.jgrid.info_dialog
method. - New option
multiPageSelection:true
is implemented. - Bug fixes in frozen columns in creating of hdiv and sdiv
- New option
quickEmpty:"quickest"
is implemented and is default - Allow to use
focusField
as DOM element or Event as option ofeditRow
. New optiondefaultFocusField
implemented ineditRow
. The new options allow easy to implement starting of inline editing inside ofonSelectRow
orondblClickRow
and setting the focus on the cell which the user clicked. - Add small magrin for sorting icons (between the sorting icon(s) and the text of column header)
- Bug fix in calculation of the width of column headers in
getAutoResizableWidth
- Bug fix of the icon of TreeGrid leaf
- Improve performance of
autoResizeColumn
method - update frozen columns to work better with filter toolbar and
jqPivot
- Bug fix in the code of
editRow
to makekeys:true
option correctly work with frozen columns. - Improve performance
setRowData
with frozen columns - Bug fix to support
focusField
which point to frozen column - Improvement of the performance of frozen columns
- Bug fix of the frozen footer (fsDiv)
- Add new
$.jgrid.hasAllClasses
method - New option
maxHeight
allows to setmax-height
CSS property on bdiv. The new option can be good combined with defaultheight: "auto"
option. For example the optionmaxHeight: 400
have no influence in case of small number of rows, but it reduces the maximal height of body of the grid (bdiv) to400px
, the grid get not so many place on the page and the user have to use horizontal scroll bar (created on demand). - Bug fixes in setting the width of bdiv (in case of vertical scrollbar appears)
- Bug fixes in
groupingRender
in processing of multi-level grouping withgroupCollapse:true
andshowSummaryOnHide:false
groupingToggle
method is full rewritten to better support frozen columns and to improve the performance- Bug fix in
setGroupHeaders
to set<thable>
always before<btable>
in the hdiv setFrozenColumns
method is changed to improve essentially the performance.- The parameters of
jqGridResetFrozenHeights
event is changed to improve performence insetFrozenColumns
- Bug fix in internal
savePositionOnHide
function used in all methods of form editing to save the position of the form on closing. The position of the forms is correctly saved and restored now.
Other readmes contains the list of the features and bug fixed implemented before:
- README492.md contains the readme of free jqGrid 4.9.2.
- README491.md contains the readme of free jqGrid 4.9.1.
- README49.md contains the readme of free jqGrid 4.9.
- README48.md contains the readme of free jqGrid 4.8.
Many thanks to all, who sent bug reports and suggestions to improve free jqGrid!