diff options
author | mleibman <michael.leibman@gmail.com> | 2011-03-06 14:15:38 -0800 |
---|---|---|
committer | mleibman <michael.leibman@gmail.com> | 2011-03-06 14:15:38 -0800 |
commit | b192b6c4837df5bfac425cf4fad0568d7cc80a56 (patch) | |
tree | 07ea3f5aa20aa7cef919dd64e0328c9689f15818 /examples/example-grouping.html | |
parent | 686ad90518d85722544d29eb0a8ad912903f679c (diff) | |
download | SlickGrid-b192b6c4837df5bfac425cf4fad0568d7cc80a56.zip SlickGrid-b192b6c4837df5bfac425cf4fad0568d7cc80a56.tar.gz SlickGrid-b192b6c4837df5bfac425cf4fad0568d7cc80a56.tar.bz2 |
Moved group and totals row handling out of DataView and client pages and into a Slick.Data.GroupItemMetadataProvider responsible for overriding the look and behavior of group and totals rows and providing expand/collapse functionality by acting as a grid plugin (still needs to be registered with the grid on the client page).
Diffstat (limited to 'examples/example-grouping.html')
-rw-r--r-- | examples/example-grouping.html | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/examples/example-grouping.html b/examples/example-grouping.html index 8de867e..eceb485 100644 --- a/examples/example-grouping.html +++ b/examples/example-grouping.html @@ -75,6 +75,7 @@ <script src="../plugins/slick.cellrangeselector.js"></script> <script src="../plugins/slick.cellselectionmodel.js"></script> <script src="../slick.grid.js"></script> + <script src="../slick.groupitemmetadataprovider.js"></script> <script src="../slick.dataview.js"></script> <script src="../controls/slick.pager.js"></script> <script src="../controls/slick.columnpicker.js"></script> @@ -217,29 +218,20 @@ d["effortDriven"] = (i % 5 == 0); } - - dataView = new Slick.Data.DataView(); + var groupItemMetadataProvider = new Slick.Data.GroupItemMetadataProvider(); + dataView = new Slick.Data.DataView({ + groupItemMetadataProvider: groupItemMetadataProvider + }); grid = new Slick.Grid("#myGrid", dataView, columns, options); + // register the group item metadata provider to add expand/collapse group handlers + grid.registerPlugin(groupItemMetadataProvider); + grid.setSelectionModel(new Slick.CellSelectionModel()); var pager = new Slick.Controls.Pager(dataView, grid, $("#pager")); var columnpicker = new Slick.Controls.ColumnPicker(columns, grid, options); - grid.onClick.subscribe(function(e, args) { - var item = this.getDataItem(args.row); - if (item && item instanceof Slick.Group && $(e.target).hasClass("slick-group-toggle")) { - if (item.collapsed) { - this.getData().expandGroup(item.value); - } - else { - this.getData().collapseGroup(item.value); - } - - e.stopImmediatePropagation(); - e.preventDefault(); - } - }); grid.onSort.subscribe(function(e, args) { sortdir = args.sortAsc ? 1 : -1; |