First class DataGrid for Nette Framework.

Supported features: filtering, sorting, pagination, tree view, table view, translator, etc

Give us a star, it makes us so happy. Thanks .️

Build Status Code coverage Licence Gitter

Downloads this Month Downloads total Latest stable


State Version Branch Nette PHP
dev ^6.3.0 master >=3.0 ^7.2
stable ^6.2.0 master >=3.0 ^7.2
stable ^6.1.0 master >=3.0 ^7.2
stable ^5.7.1 v5.x >=2.3 ^5.6
stable ^4.4.22 v5.x >=2.3 ^5.6
stable ^3.3.1 v5.x >=2.3 ^5.3

Useful links

What Where
Example project
Forum (EN) will be updated
Forum (CZ)

GitHub Issues & Sponsoring

  1. At the moment, we have limited time to maintain contributte datagrid for free. But you can create some maintenance time by sponsoring us. Ask us in email for available tarifs (email visible on At the moment, we have 1 little sponsor that gives us 1 hour of maintenance per month.
  2. Sometimes, when there is a new issue opened (either with a new feature request or a bug report), we may assign a label with a dollar sign ($) and an amount of dollars to the issue. This is an opportunity for you to support datagrid vendor creators and resolve particular issue.

Thank you for your support.


Pavel Janda

Milan Felix Šulc

Former maintainers

Martin Procházka

Thank you for testing, reporting and contributing.

  • v6.2.29 v6.2.29


    • Status/Option: added connfirmation dialog

    Diff: v6.2.28...v6.2.29

  • v6.2.28 v6.2.28


    • Add option to set target of Export html:a button (@hlavacz)

    Diff: v6.2.27...v6.2.28

  • v5.7.8 v5.7.8


    • Sorting wont use anything but ASC/DESC strings (@juniwalk)

    Diff: v5.7.7...v5.7.8

  • v6.2.27 v6.2.27


    • Sorting wont use anything but ASC/DESC strings (@juniwalk)

    Diff: v6.2.26...v6.2.27

  • v5.7.7 v5.7.7


    • Fixed group text action collision with another datagrid (@Matousek)

    Diff: v5.7.6...v5.7.7

  • v6.2.26 v6.2.26


    • Fixed group text action collision with another datagrid

    Diff: v6.2.25...v6.2.26

  • v6.2.25 v6.2.25


    • GroupActionCollection: better type hints

    Diff: v6.2.24...v6.2.25

  • v6.2.24 v6.2.24


    • Button group actions (@besir)

    Diff: v6.2.23...v6.2.24

  • v6.2.23 v6.2.23


    • assets: replace pushState to replaceState in history API (@martenb)

    Diff: v6.2.22...v6.2.23

  • v5.7.6 v5.7.6


    Diff: v5.7.5...v5.7.6

  • v6.2.22 v6.2.22


    • DibiFluentPostgreDataSource - fix for BC break in dibi 4.1.2 in text search (@elring)

    Diff: v6.2.21...v6.2.22

  • v6.2.21 v6.2.21


    • Update DataGrid.php When sortCallback is not set. Use column sortableCallback (@VojtechSejkora)

    Diff: v6.2.20...v6.2.21

  • v6.2.20 v6.2.20


    Diff: v6.2.19...v6.2.20

  • v6.2.19 v6.2.19


    • Composer: use newer version of contributte/application

    Diff: v6.2.18...v6.2.19

  • v6.2.18 v6.2.18


    • ActionCallback::$onClick type fix

    Diff: v6.2.17...v6.2.18

  • v6.2.17 v6.2.17


    • DataGrid: fix inline edit payload when editable callback is empty

    Diff: v6.2.16...v6.2.17

  • v6.2.16 v6.2.16


    Diff: v6.2.15...v6.2.16

  • v6.2.15 v6.2.15


    • Fix: Can not set default filter for FilterDateRange (@xsuchy09)
    • Boostrap bc break template fix (fixes outer filters)

    Diff: v6.2.14...v6.2.15

  • v6.2.14 v6.2.14


    • Fix items detail form parameter in detail template (@vitkutny)

    Diff: v6.2.13...v6.2.14

  • v6.2.13 v6.2.13


    • filter template BS fixes

    Diff: v6.2.12...v6.2.13

  • v6.2.12 v6.2.12


    Diff: v6.2.11...v6.2.12

  • v5.7.5 v5.7.5


    Diff: v5.7.4...v5.7.5

  • v6.2.11 v6.2.11


    • Naja support imporvement (@n3t)

    Diff: v6.2.10...v6.2.11

  • v6.2.10 v6.2.10

    Bump! 👠

    • Fixed context in $.nette adapter (@radekdostal)
    • Fixed translation string (@RiKap)
    • GroupTextareaAction - \Nette\Forms\Container::addTextArea() require first parameter as string (@VaclavPavek)
    • Fixed ArrayDataSource SelectBox filter - values are integers (@kuchy)

    Diff: v6.2.9...v6.2.10

  • v6.2.9 v6.2.9

    Bump! 🕶

    • Fixed Multiple column Aggregation Function rendering
    • Added Multiple column Aggregation Function docs
    • Added interface ISingleColumnAggregationFunction (which should be used for single column aggregation functions from now on, potential BC Break, not actual because the method ::render() should be already implemented)

    Diff: v6.2.8...v6.2.9

  • v6.2.8 v6.2.8

    Bump! 🧷

    • Fixed Aggregation Function rendering + docs

    Diff: v6.2.7...v6.2.8

  • v6.2.7 v6.2.7

    Bump! 🏄‍♂️

    • assets/datagrid-spinners.js: remove unnecessary .bind(this)

    Diff: v6.2.6...v6.2.7

  • v6.2.6 v6.2.6

    Bump! 🧘‍♂️

    • Add posibility to override/extend html class for the containing div (@Jakub-Fajkus)
    • Fix default value of input of type select in small inline edit (@KrejcirD)
    • datagrid-instant-url-refresh.js: dropped jQuery dependency (@martenb)
    • Fix context in naja and $.nette adapters (@vitkutny)
    • assets/datagrid.js: removed unnecessary .bind(this)

    Diff: v6.2.5...v6.2.6

  • v5.7.4 v5.7.4

    Diff: v5.7.3...v5.7.4

  • v5.7.3 v5.7.3

    Bump! 🏄‍♂️

    • Fixed paginator when using translated 'all' option

    Diff: v5.7.2...v5.7.3

  • v6.2.5 v6.2.5

    Bump! 👩‍💻

    Diff: v6.2.4...v6.2.5

  • v6.2.4 v6.2.4

    Bump! 🍓

    Diff: v6.2.3...v6.2.4


    • ItemDetail fix when multiple datagrids at same page (@BigOHenry)
    • Fix array data source type error (@kuchy)
    • Docs fixes (@n3t)
    • README updates (@f3l1x)
  • v6.2.3 v6.2.3

    Bump! 📌

    Diff: v6.2.2...v6.2.3


    • Fix the filter reset type error when the remember state is disabled (@jaroslavlibal)
  • v6.2.2 v6.2.2

    Bump! 🎈

    Diff: v6.2.1...v6.2.2


    • Make the $template parameter nullable in Column::setTemplate() (@jaroslavlibal)
  • v6.2.1 v6.2.1

    Bump! 🐸

    Diff: v6.2.0...v6.2.1


    • Added the casting to string to the CsvDataModel::getRow() (@jaroslavlibal)
  • v6.2.0 v6.2.0

    Bump! 💅

    Diff: v6.1.1...v6.2.0


    • Added UUID support in Row::getDoctrineEntityProperty() (@Rixafy)
    • Added support for string IDs (@Rixafy)
    • Support inheritance static analysis in return types (@mabar)
    • Fixed $rowCallback argument of DataGrid::setColumnsSummary() method
  • v6.1.1 v6.1.1

    Bump! 🐒

    Diff: v6.1.0...v6.1.1


    • DataGrid: fixed resetting filter session
  • v6.1.0 v6.1.0

    Bump! 🐟

    Diff: v6.0.1...v6.1.0


    • Render condition within ColumnStatus (@peldax)


    • DateTimeHelper & ColumnDateTime: handling of null values
    • Rendering of inline add inside a component
  • v6.0.1 v6.0.1

    Bump! 👻

    Diff: v6.0.0...v6.0.1


    • Completed documentation


    • Replacement of ::getName() with ::lookupPath() (@peldax)
    • datagrid.latte template (missing class with padding-bottom)
    • phpstan, code sniffer
  • v6.0.0 v6.0.0

    Bump V6!


    Diff: v5.7.2...v6.0.0


    • Using Nette v3
    • Using PHP 7.2 including strinct types

    BC Breaks:

    • Changed method name: Ublaboo\DataGrid\Column\Column::addAttributes() -> ::addCellAttributes():
      • Ublaboo\DataGrid\Column\Action::addAttributes() -> ::addCellAttributes()
      • Ublaboo\DataGrid\Column\ColumnDateTime::addAttributes() -> ::addCellAttributes()
      • Ublaboo\DataGrid\Column\ColumnLink::addAttributes() -> ::addCellAttributes()
      • Ublaboo\DataGrid\Column\ColumnNumber::addAttributes() -> ::addCellAttributes()
      • Ublaboo\DataGrid\Column\ColumnStatus::addAttributes() -> ::addCellAttributes()
      • Ublaboo\DataGrid\Column\ColumnText::addAttributes() -> ::addCellAttributes()
      • Ublaboo\DataGrid\Column\MultiAction::addAttributes() -> ::addCellAttributes()
    • Changed method name and method parameters:
      • Ublaboo\DataGrid\Column\Action::setConfirm(some mixed thing) -> ::setConfirmation(IConfirmation $confirmation)
        • There are 2 IConfirmation implementations: StringConfirmation and CallbackConfirmation
    • Names of template variables changed from snake_case to camelCase:
      • $columns_visibility -> $columnsVisibility
      • $original_template -> $originalTemplate
      • etc ...
    • Changed method parameter:
      • Ublaboo\DataGrid\Column\Column::setSort(array $sort) -> ::setSort(string $sort) (Before: ['status' => 'ASC'], after: 'ASC')
    • Dropped coffescritpt/sass assets -> using only JS/CSS assets now
  • v5.7.2 v5.7.2

    Bump! ⌛️

    Diff: v5.7.1...v5.7.2


    • Handle the invalid date values in the date and date range filters (@petaak )
    • Add check for __toString() in array row value (@Rixafy )
    • Added method ::getOptions() for FilterSelect and FilterMultiSelect (@stanislav-janu )
  • v5.7.1 v5.7.1

    Bump! ⌛️

    Diff: v5.7.0...v5.7.1


    • Added support for Export button confirm dialog (@Arziel)
    • Bump 5.7.0 NPM package
    • DoctrineDataSource - clean DQL orderBy (@JKoty)
    • Bootstrap 4 calendar icon (@radekdostal) [#706]
    • Repair paginator (@romanmatyus) [#645]
    • NextrasDataSource - fix multiselect (@martenb) [#653]
    • DoctrineCollectionDataSource - protectec properties [#672]
    • Bugfix: throwing exception on null parent. [#721]
    • Datagrid: setDataSource - allow NextrasDataSource [#737]
  • v5.7.0 v5.7.0

    Bump! 😲

    Diff: v5.6.0...v5.7.0


    • initial markdown docs (@paveljanda)
    • add the object to string cast to the Row::getId method [#704]
    • added setPositionTop to columns summary (@vladimirbiro)
    • append all defined attributes to (@paveljanda)
    • allow zero value in custom editable value (@lukascellar)
    • column - added condition callback to allow/disallow inline editing on each row (@radekprokes)
    • allows set custom paginator template before datagrid component is attached to presenter component (@mhucik)
    • support Bootstrap 4 [#416][#593][#678][#699][#700]
    • regenereate CSS/JS files [#704]



    • dropped minified CSS/JS files, you have to manage by yourself (@f3l1x)

    Install via NPM (

    npm i ublaboo-datagrid

    Or you can use assets from rawgit. Just try it:

  • v5.4.9 v5.4.9

    • PHP 7.2 support: removed usage of Nette\Object -> using Nette\SmartObject trait instead
  • v5.6.0 v5.6.0

    Bump! 🎃

    Diff: v5.5.6...v5.6.0


    • allow symofny/property-accessor v4.0
    • run PHP 7.2 tests
    • call addComponent on control (due to change in nette/application)


    • failing DibiFluent vs Dibi\Fluent tests
    • failing NextrasORM v2.0 tests
    • render url for signal in parent control
  • v5.5.6 v5.5.6

    • Added possibility to render yet another Nette\Forms\Container in inline edit container
  • v5.5.5 v5.5.5

    • package.json update - to latest version
  • v5.5.4 v5.5.4

    • Fixed sorting of column after returning from different page and then manipulating with filter
  • v5.5.3 v5.5.3

    • Assets: added .npmignore for exluding PHP files and other npm-irrelevant files
  • v5.5.2 v5.5.2

    • Fixed sorting: let the previous remain after filtering
  • v5.5.1 v5.5.1


    • TLink: Try to create presenter link when there is a colon in the link string (fixes link creation to presenter action)
  • v5.5.0 v5.5.0

    New features

    • Link creation update - look for signal handler in the whole way up to the UI\Presenter, fixes #592
    • ColumnsSummary: added support for custom renderer (thanks @vitkutny)
    • Add option to set render condition callback on action (thanks @jankonas)


    • Fixed sorting on column, which has defined default descending sort (thanks @proki)
    • Use single quotes when finding option in inline edit (thanks @FilipLukac)
  • 5.4.13 5.4.13

    • Fixed TButtonRenderer to support php < 7.1
  • 5.4.12 5.4.12

    • TButtonRenderer trait (so even ToolbarButton can be rendered by custom callback)
  • v5.4.11 v5.4.11

    • Assets: fixed hiding of inline edit button
  • v5.4.8 v5.4.8

    • DateTimeHelper: added check for unix timestamp (great for displaying date/datetime columns with unix timestamp value set in data)
  • v5.4.7 v5.4.7

    • Fix for non-functional text filter in PostgreSQL + dibi, thanks @elring
  • v5.4.6

  • v5.4.5 v5.4.5



  • v5.4.2 v5.4.2


    • Group action checkboxes: fixed counter showing number of selected rows


Is this addon outdated? Did you find an issue? Please report it.

Componette Componette