Search code examples
javascriptjqueryarraysparameter-passingslickgrid

Slickgrid: Multiple Grouping with dynamic Parameters


I am working on SlickGrid JS plugin. And i want to dynamically group the Grid/Table based on the table header. How should I pass the parameters [getter,formatter, aggregators] dynamically

without hard coding like this

dataView.setGrouping([
    {
        getter : "department",
        collapsed : false,
        formatter : function(g){
            return g.value;
        },
        comparer : groupComparer
    },{
        getter : "faculty",
        collapsed : false,
        formatter : function(g){
            return g.value;
        },
        comparer : groupComparer
    }
]);

Is it possible to use any looping statements to generate Array of parameters


Solution

  • I have tried much, and found this solution

                arr=["department","faculty"];       //Dynamically generated array having titles to group
                var ar = []; //empty array to push parameters                                           
                for(i = 0; i < arr.length; i++)
                {                                       
                    ar[i] = {
                            getter: arr[i],
                            formatter: function (g) {                               
                                    return ":  " + g.value + "  <span style='color:green'>(" + g.count + " items)</span>";
                            },      
                            aggregators: [
                                new Slick.Data.Aggregators.Avg("percentComplete"),
                                new Slick.Data.Aggregators.Sum("cost")
                            ],
                            aggregateCollapsed: false,
                            lazyTotalsCalculation: false
                          };                      
                }               
                dataView.setGrouping(ar);