jQWidgets Forums
jQuery UI Widgets › Forums › Grid › getcolumnaggregateddata
Tagged: aggregates, getcolumnaggregateddata, grid, jqxgrid
This topic contains 8 replies, has 2 voices, and was last updated by Dimitar 12 years, 4 months ago.
-
Authorgetcolumnaggregateddata Posts
-
hi,
mein Problem ist das ich nicht das Aggregat Sum auswerten kann.
ich versuche mit folgender schreibweise die daten aus dem aggregate footer des grids
das einzelne columnaggregat Sum auszulesen und es einem Div zu übergeben.
var summaryData = $("#jqxGrid").jqxGrid('getcolumnaggregateddata', 'wMwst1', ['sum']);$('#idOffen').html(summaryData);
kann mir jemand sagen was ich hier verkehrt mache?
hi,
My problem is that I can evaluate not the aggregate sum. I try from the aggregate the data in the footer of the grid with the following spelling the individual columnaggregat to read sum and pass it a div
var summaryData = $("#jqxGrid").jqxGrid('getcolumnaggregateddata', 'wMwst1', ['sum']);$('#idOffen').html(summaryData);
can anyone tell me what I’m doing wrong here?
Hello detberlin,
Could you, please, post a bigger code snippet so that we may be able to find the source of the issue?
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/ok…
I would like to know how I can read out the sum
and how can I pass a div
i use jquery-1.8.2 and jqwidgets-ver2.5.5
$(document).ready(function () {data='';// my comment// prepare the datavar source ={localdata: data, datatype: "array",updaterow: function (rowid, rowdata) {// synchronize with the server - send update command}};var dataAdapter = new $.jqx.dataAdapter(source);// initialize jqxGrid $("#jqxgrid").jqxGrid({width: 680,source: dataAdapter,showstatusbar: true,statusbarheight: 50,editable: true,showaggregates: true, selectionmode: 'singlecell',columns: [{ text: 'First Name', columntype: 'textbox', datafield: 'firstname', width: 90,aggregatesrenderer: function (aggregates, column, element) { var renderstring = "<div style='float: left;width: 100%;height: 100%' />";return renderstring;}},{ text: 'Last Name', datafield: 'lastname', columntype: 'textbox', width: 90,aggregatesrenderer: function (aggregates, column, element) { var renderstring = "<div style='float: left;width: 100%;height: 100%' />";return renderstring;}},{ text: 'Product', datafield: 'productname', width: 170,aggregatesrenderer: function (aggregates, column, element) { var renderstring = "<div style='float: left;width: 100%;height: 100%' />";return renderstring;}}, { text: 'Quantity', datafield: 'quantity', width: 85, cellsalign: 'right', cellsformat: 'n2', aggregates: ['min', 'max'],aggregatesrenderer: function (aggregates, column, element) { var renderstring = "<div style='float: left;width: 100%;height: 100%'>";$.each(aggregates, function (key, value) { var name = key == 'min' ? 'Min' : 'Max'; var color = key == 'max' ? 'green' : 'red'; renderstring += '<div style="color: ' + color + ';margin: 6px;text-align: right;overflow: hidden">' + name + ': ' + value + '</div>';}); renderstring += "</div>";return renderstring;}}, { text: 'Price', datafield: 'price', cellsalign: 'right', cellsformat: 'c2', aggregates: ['sum', 'avg'],aggregatesrenderer: function (aggregates, column, element, summaryData) { var renderstring = "<div style='float: left;width: 100%;height: 100%'>";$.each(aggregates, function (key, value) { var name = key == 'sum' ? 'Sum' : 'Avg'; var color = 'green'; if (key == 'sum' && summaryData['sum'] < 650) { color = 'red';} if (key == 'avg' && summaryData['avg'] < 4) { color = 'red';} renderstring += '<div style="color: ' + color + ';margin: 6px;text-align: right;overflow: hidden">' + name + ': ' + value + '</div>';}); renderstring += "</div>";return renderstring;}}]});});
my declaration
<link rel="stylesheet" href="index.css" type="text/css"><link rel="stylesheet" href="moduljqx/jqx.base.css" type="text/css"><link rel="stylesheet" href="moduljqx/jqx.energyblue.css" type="text/css"><link rel="stylesheet" href="moduljqx/mydarkblue.css" type="text/css"><script type="text/javascript" src="moduljqx/jquery-1.8.2.min.js"></script><script type="text/javascript" src="moduljqx/jqxcore.js"></script><script type="text/javascript" src="moduljqx/jqxdata.js"></script><script type="text/javascript" src="moduljqx/jqxgrid.js"></script><script type="text/javascript" src="moduljqx/jqxgrid.edit.js"></script><script type="text/javascript" src="moduljqx/jqxscrollbar.js"></script><script type="text/javascript" src="moduljqx/jqxgrid.selection.js"></script><script type="text/javascript" src="moduljqx/jqxlistbox.js"></script><script type="text/javascript" src="moduljqx/jqxdropdownlist.js"></script><script type="text/javascript" src="moduljqx/jqxbuttons.js"></script><script type="text/javascript" src="moduljqx/jqxpanel.js"></script><script type="text/javascript" src="moduljqx/jqxcheckbox.js"></script><script type="text/javascript" src="moduljqx/jqxradiobutton.js"></script><script type="text/javascript" src="moduljqx/jqxwindow.js"></script><script type="text/javascript" src="moduljqx/jqxvalidator.js"></script><script type="text/javascript" src="moduljqx/jqxgrid.aggregates.js"></script><script type="text/javascript" src="wconfigs.js"></script><script type="text/javascript" src="xangebot.js"></script>
here my code for the Grid…
function zeigeWarenkorb(){ var warenkorbArray = new Array(); var warenkorbSource = new $.jqx.dataAdapter({localdata:warenkorbArray, datatype:"array"}); var cellTxt = function (row, datafield, value) {return '<div class="wbCellen1">' + value + '</div>';} var cellDel = function (id){return '<div style="background:#fff; width:100%; height:100%;">' + '<img onClick="warenkorbDeleteItem(id)" id="' + id + '" src="bilder/optwaren.png" style="position:absolute; left:6px; top:4px;"></div>'} $('#warenGrid').jqxGrid({width:350, height:594, rowsheight:22, verticalscrollbarstep:22, source:warenkorbSource, enableanimations:false, columnsresize:false, showemptyrow:false, showheader:false, theme:'energyblue', showstatusbar:true, statusbarheight:30, showaggregates:true, columns:[ {datafield:'X', width:25, cellsrenderer:cellDel}, {datafield:'wStuck', width:25, cellsalign:'right'}, {datafield:'wWaren', width:210, cellsrenderer:cellTxt}, {text:'wPreis',datafield:'wPreis', cellsformat:'c2', cellsalign:'right'}, {datafield:'wMwSt1', cellsformat:'f2', hidden:true, aggregates:['sum']}, {datafield:'wMwSt2', cellsformat:'f2', hidden:true}, {datafield:'wIndex', hidden:true}, {datafield:'wGutid', hidden:true}]}); var warenlocalize = {}; warenlocalize.currencysymbol = " €"; warenlocalize.currencysymbolposition = "after"; warenlocalize.decimalseparator = ","; warenlocalize.thousandsseparator = "."; $('#warenGrid').jqxGrid('localizestrings', warenlocalize);}//----------------------------------------------------------------------------------------------------------------------------function warenkorbDeleteItem(id){ var wSumme = $('#warenGrid').jqxGrid('getcellvalue', id, 'wPreis'); berechneWarenkorb(-wSumme); $('#warenGrid').jqxGrid('deleterow',id);}
and now ….
I would like to now pass the value of aggregate sum to another window in a
i hope you understand me
Hi detberlin,
Here is what you should do:
var summaryData = $('#warenGrid').jqxGrid('getcolumnaggregateddata', 'wMwSt1', ['sum']); $('#idOffen').html(summaryData.sum);
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/hi Dimitar,
it works……
but I can also have a set default value?
when the grid is empty I want to put the aggregate sum to 0.00
Hi detberlin,
You can do the following (sample based on the Aggregates Renderer demo):
{ text: 'Price', datafield: 'price', cellsalign: 'right', cellsformat: 'c2', aggregates: ['sum', 'avg'], aggregatesrenderer: function (aggregates, column, element, summaryData) { var renderstring = "<div class='jqx-widget-content jqx-widget-content-" + theme + "' style='float: left; width: 100%; height: 100%;'>"; $.each(aggregates, function (key, value) { var name = key == 'sum' ? 'Sum' : 'Avg'; var color = 'green'; if (key == 'sum' && summaryData['sum'] < 650) { color = 'red'; } if (key == 'avg' && summaryData['avg'] < 4) { color = 'red'; } renderstring += '<div style="color: ' + color + '; position: relative; margin: 6px; text-align: right; overflow: hidden;">' + name + ': ' + value + '</div>'; }); renderstring += "</div>"; var rowCount = $("#jqxgrid").jqxGrid('getrows'); var zero = 0; if (rowCount.length == 0) { return zero.toFixed(2); } else { return renderstring; }; } }
Best Regards,
DimitarjQWidgets team
http://www.jqwidgets.com/ -
AuthorPosts
You must be logged in to reply to this topic.