jQWidgets Forums
jQuery UI Widgets › Forums › Grid › Grid aggregatesrenderer
This topic contains 3 replies, has 3 voices, and was last updated by Yavor Dashev 3 years, 11 months ago.
-
AuthorGrid aggregatesrenderer Posts
-
Hi, I’m having an issue with aggregatesrenderer in a grid with columngroup. i am on version 3.0.2
Here is my grid
grid.jqxGrid({ width: '99.9%', height: 600, theme: theme, source: dataAdapter, altrows: true, showstatusbar: true, showaggregates: true, statusbarheight: 40, enablehover: true, showtoolbar: true, columns: SetGridColumns('product', $(".jqx-slider").jqxSlider('values')), columngroups: SetGridColumnsGroups($(".jqx-slider").jqxSlider('values')), sortable: true });
Here are mycloumns setup function SetGridColumns(type,daterange) { var columns = [ type === 'product' ? { text: 'Tour', dataField: 'ProductName', width: '22%', align: 'center', pinned: true } : { text: 'Guide', dataField: 'UserName', width: '22%', align: 'center', pinned: true }, { columngroup: 'January', text: 'Avg', dataField: 'JanAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'January', text: '#', dataField: 'JanTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'February', text: 'Avg', dataField: 'FebAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'February', text: '#', dataField: 'FebTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'March', text: 'Avg', dataField: 'MarAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'March', text: '#', dataField: 'MarTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'April', text: 'Avg', dataField: 'AprAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'April', text: '#', dataField: 'AprTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'May', text: 'Avg', dataField: 'MayAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'May', text: '#', dataField: 'MayTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'June', text: 'Avg', dataField: 'JunAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'June', text: '#', dataField: 'JunTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'July', text: 'Avg', dataField: 'JulAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'July', text: '#', dataField: 'JulTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'August', text: 'Avg', dataField: 'AugAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'August', text: '#', dataField: 'AugTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'September', text: 'Avg', dataField: 'SepAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'September', text: '#', dataField: 'SepTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'October', text: 'Avg', dataField: 'OctAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'October', text: '#', dataField: 'OctTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'November', text: 'Avg', dataField: 'NovAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'November', text: '#', dataField: 'NovTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'December', text: 'Avg', dataField: 'DecAverage', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'December', text: '#', dataField: 'DecTotal', width: '4%', align: 'center', cellsalign: 'center', cellsrenderer: cellsrenderer }, { columngroup: 'Total', text: 'Avg', dataField: 'TotAverage', width: '6%', align: 'center', cellsalign: 'center', cellclassname: 'totals'}, { columngroup: 'Total', text: '#', dataField: 'TotTotal', width: '6%', align: 'center', cellsalign: 'center', cellclassname: 'totals', aggregates: ['sum'], aggregatesrenderer: function (aggregates) { return 1; } } ] var startMonth = daterange[0]; var endMonth = daterange[1]; if (startMonth == 1) { columns.splice(1 + (endMonth * 2), (12 - endMonth) * 2); } else { columns.splice(1, (startMonth * 2) - 2); // remove the LEFT COLUMNS columns.splice((endMonth * 2) - ((startMonth * 2) - 3), (columns.length - (endMonth - startMonth) * 2) - 5); } return columns; } function SetGridColumnsGroups(daterange) { var columnGroups = [ { text: 'January', align: 'center', name: 'January' } , { text: 'February', align: 'center', name: 'February' } , { text: 'March', align: 'center', name: 'March' } , { text: 'April', align: 'center', name: 'April' } , { text: 'May', align: 'center', name: 'May' } , { text: 'June', align: 'center', name: 'June' } , { text: 'July', align: 'center', name: 'July' } , { text: 'August', align: 'center', name: 'August' } , { text: 'September', align: 'center', name: 'September' } , { text: 'October', align: 'center', name: 'October' } , { text: 'November', align: 'center', name: 'November' } , { text: 'December', align: 'center', name: 'December' } , { text: 'Total', align: 'center', name: 'Total' } ] var startMonth = daterange[0]; var endMonth = daterange[1]; if (startMonth == 1) { columnGroups.splice(endMonth, (12 - endMonth)); } else { columnGroups.splice(0, (startMonth - 1)); // remove the LEFT COLUMNS columnGroups.splice(endMonth - (startMonth-1), (columnGroups.length - (endMonth - (startMonth-1)))-1); } return columnGroups; }
Here are the dataFields
datafields: [ { name: 'ProductName', type: 'string' }, { name: 'JanTotal', type: 'int' }, { name: 'JanAverage', type: 'float' }, { name: 'FebTotal', type: 'int' }, { name: 'FebAverage', type: 'float' }, { name: 'MarTotal', type: 'int' }, { name: 'MarAverage', type: 'float' }, { name: 'AprTotal', type: 'int' }, { name: 'AprAverage', type: 'float' }, { name: 'MayTotal', type: 'int' }, { name: 'MayAverage', type: 'float' }, { name: 'JunTotal', type: 'int' }, { name: 'JunAverage', type: 'float' }, { name: 'JulTotal', type: 'int' }, { name: 'JulAverage', type: 'float' }, { name: 'AugTotal', type: 'int' }, { name: 'AugAverage', type: 'float' }, { name: 'SepTotal', type: 'int' }, { name: 'SepAverage', type: 'float' }, { name: 'OctTotal', type: 'int' }, { name: 'OctAverage', type: 'float' }, { name: 'NovTotal', type: 'int' }, { name: 'NovAverage', type: 'float' }, { name: 'DecTotal', type: 'int' }, { name: 'DecAverage', type: 'float' }, { name: 'TotTotal', type: 'int' }, { name: 'TotAverage', type: 'float' } ],
I get the following error when the aggregatesrenderer function is called.
Sys.ParameterCountException: Sys.ParameterCountException: Parameter count mismatch.
{name: “format”, type: String}Thanks in advance.
Steven
I have an update on this.
I am using the jqWidgets library in Visual Studio 2010 Ultimate
Ignore the code above, this also happens when i take the aggregatesrenderer example from this site and run it in an aspx page in visual studio.
When the web.config has debug mode set to true the applications loads microsoftajax.debug.js and this throws the error mentioned above when calling the aggregatesrenderer function.
Any suggestions on how to fix this apart from the obvious, set debug false in web.config?
Thanks
StevenI know this one is old, but … I am getting a javascript fail in the microsoftajax logic when I try to apply an aggregatesrenderer to a column that has no values (they are all null). Apart from catching the nulls before they are sent to the dataadaptor (on the server side) there doesn’t seem to be a way to catch them on the client side. Note that I can aggregate, and I get “Sum:NaN”. However, if I override the renderer it bugs out in Microsoftajax. If at least one value is non-null then it gets to the aggregatesrenderer function. Code snippet is:
{
text: ‘Total Budget (‘ + self.OrganisationCurrency + ‘)’, datafield: ‘TotalBudget’, width: 120, cellsalign: ‘right’, align: ‘right’, cellsformat: ‘d2’,
cellsrenderer: self.moneyRenderer, aggregates: [‘sum’], aggregatesrenderer: self.aggMoneyRenderer
},FWIW here is the renderer code. Note that it doesn’t make it to this function on the column in question.
self.aggMoneyRenderer = function (aggregates) {
var ag = aggregates[‘sum’] || ‘0’; // not sure why the renderer needs to send the value as a string – so we need to parse it …
var sum = parseFloat(ag.replace(/,/g, ”))
return ‘<div class=”grid-div” style=”text-align: right; margin-top: 4px;”><span>’ + self.moneyFormatter.format(sum) + ‘</span></div>’;
};Hi iangwatts,
I have tested a use case similar to yours but I was unable to reproduce the exact same issue as you do.
Also when using this behavior is present when you parse the string, and without it returns a value of ‘0’ which if I understood correctly is what you need.So I would suggest you remove the line
var sum = parseFloat(ag.replace(/,/g, ”))
and test it and let me know if that works for you!If my suggestion wasn’t useful for you its best to create a complete code example of your use case in order to able to fully assist you.
Please, do not hesitate to contact us if you have any additional questions.
Best Regards,
Yavor Dashev
jQWidgets team
https://www.jqwidgets.com -
AuthorPosts
You must be logged in to reply to this topic.