Search code examples
slickgrid

Slickgrid example5 collapsing is not working


This is my first experience with Slickgrid and I have configured slickgrid treeview example5 in my org. Unfortunately could not make collapsing work. After debugging one thing I noticed is onRowCountChanged event is not called.

Can anyone please help me her. Thanks in advance...

I wired the event on page as --

        $(function () { 
          Visualforce.remoting.Manager.invokeAction(
              '{!$RemoteAction.QuoteHandler_c.getQuoteItems}','{!quote.id}',
              function(result, event) {
                  quoteItems = result;
                  prepateData();
                  // initialize the model
            dataView = new Slick.Data.DataView({ inlineFilters: true });
                  dataView.beginUpdate();       
                  dataView.setItems(data);
                  dataView.setFilter(myFilter);
                  dataView.endUpdate();
                    // initialize the grid
        grid = new Slick.Grid("#myGrid", dataView, columns, options);

                  grid.onClick.subscribe(function (e, args) {
                    if ($(e.target).hasClass("toggle")) {
                      var item = dataView.getItem(args.row);
                      if (item) {
                        if (!item._collapsed) {
                          item._collapsed = true;
                        } else {
                          item._collapsed = false;
                        }

                        dataView.updateItem(item.id, item);
                      }
                      e.stopImmediatePropagation();
                    }
                  });


                  // wire up model events to drive the grid
                  dataView.onRowCountChanged.subscribe(function (e, args) {
                    grid.updateRowCount();
                    grid.render();
                  });

                  dataView.onRowsChanged.subscribe(function (e, args) {
                    grid.invalidateRows(args.rows);
                    grid.render();
                  });

                  var h_runfilters = null;
                  // wire up the slider to apply the filter to the model
                  $("#pcSlider").slider({
                    "range": "min",
                    "slide": function (event, ui) {
                      Slick.GlobalEditorLock.cancelCurrentEdit();
                      if (percentCompleteThreshold != ui.value) {
                        window.clearTimeout(h_runfilters);
                    h_runfilters = window.setTimeout(dataView.refresh, 10);
                        percentCompleteThreshold = ui.value;
                      }
                    }
                  });
             // wire up the search textbox to apply the filter to the model
                  $("#txtSearch").keyup(function (e) {

                    Slick.GlobalEditorLock.cancelCurrentEdit();
                    // clear on Esc
                    if (e.which == 27) {
                      this.value = "";
                    }
                    searchString = this.value;
                    dataView.refresh();
                  })


              }
          );

        })

Solution

  • Thanks for your help...

    I figured it out. The error was with myFilter function. Because of which the number of rows always returned same hence onRowsCountChanged not called.