/web/js/components/jqwidgets/demos/jqxtreegrid/javascript-tree-grid-custom-aggregates.htm

https://github.com/jonphipps/Metadata-Registry · HTML · 115 lines · 112 code · 3 blank · 0 comment · 0 complexity · 80d5293d2e055c7dca0b21af26298388 MD5 · raw file

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title id="Description">Custom TreeGrid Aggregates.</title>
  5. <meta name="description" content="Custom Tree Grid Aggregates - JavaScript Tree Grid Demo | jQWidgets">
  6. <link rel="stylesheet" href="../../jqwidgets/styles/jqx.base.css" type="text/css" />
  7. <script type="text/javascript" src="../../scripts/jquery-1.11.1.min.js"></script>
  8. <script type="text/javascript" src="../../jqwidgets/jqxcore.js"></script>
  9. <script type="text/javascript" src="../../jqwidgets/jqxbuttons.js"></script>
  10. <script type="text/javascript" src="../../jqwidgets/jqxscrollbar.js"></script>
  11. <script type="text/javascript" src="../../jqwidgets/jqxdatatable.js"></script>
  12. <script type="text/javascript" src="../../jqwidgets/jqxtreegrid.js"></script>
  13. <script type="text/javascript" src="../../jqwidgets/jqxdata.js"></script>
  14. <script type="text/javascript" src="../../jqwidgets/jqxcheckbox.js"></script>
  15. <script type="text/javascript" src="../../jqwidgets/jqxlistbox.js"></script>
  16. <script type="text/javascript" src="../../scripts/demos.js"></script>
  17. <script type="text/javascript">
  18. $(document).ready(function () {
  19. var data = [
  20. {
  21. "id": "1", "name": "Corporate Headquarters", "budget": "1230000", "location": "Las Vegas",
  22. "children":
  23. [
  24. {
  25. "id": "2", "name": "Finance Division", "budget": "423000", "location": "San Antonio",
  26. "children":
  27. [
  28. {
  29. "id": "4", "name": "Investment Department", "budget": "310000", "location": "San Antonio",
  30. children:
  31. [
  32. { "id": "5", "name": "Banking Office", "budget": "240000", "location": "San Antonio" },
  33. { "id": "6", "name": "Bonds Office", "budget": "70000", "location": "San Antonio" },
  34. ]
  35. },
  36. { "id": "3", "name": "Accounting Department", "budget": "113000", "location": "San Antonio" }
  37. ]
  38. },
  39. {
  40. "id": "7", "name": "Operations Division", "budget": "600000", "location": "Miami",
  41. "children":
  42. [
  43. { "id": "8", "name": "Manufacturing Department", "budget": "300000", "location": "Miami" },
  44. { "id": "9", "name": "Public Relations Department", "budget": "200000", "location": "Miami" },
  45. { "id": "10", "name": "Sales Department", "budget": "100000", "location": "Miami" }
  46. ]
  47. },
  48. { "id": "11", "name": "Research Division", "budget": "200000", "location": "Boston" }
  49. ]
  50. }
  51. ];
  52. var source =
  53. {
  54. dataType: "json",
  55. dataFields: [
  56. { name: "name", type: "string" },
  57. { name: "budget", type: "number" },
  58. { name: "id", type: "number" },
  59. { name: "children", type: "array" },
  60. { name: "location", type: "string" }
  61. ],
  62. hierarchy:
  63. {
  64. root: "children"
  65. },
  66. localData: data,
  67. id: "id"
  68. };
  69. var dataAdapter = new $.jqx.dataAdapter(source, {
  70. loadComplete: function () {
  71. }
  72. });
  73. // create jqxTreeGrid.
  74. $("#treeGrid").jqxTreeGrid(
  75. {
  76. source: dataAdapter,
  77. altRows: true,
  78. width: 850,
  79. showSubAggregates: true,
  80. columnsResize: true,
  81. ready: function () {
  82. $("#treeGrid").jqxTreeGrid('expandRow', '1');
  83. $("#treeGrid").jqxTreeGrid('expandRow', '2');
  84. },
  85. columns: [
  86. { text: "Name", align: "center", dataField: "name", width: 300 },
  87. { text: "Location", dataField: "location", cellsAlign: "center", align: "center", width: 250 },
  88. {
  89. text: "Budget", cellsAlign: "center", align: "center", dataField: "budget", cellsFormat: "c2",
  90. aggregates: ['sum'],
  91. aggregatesRenderer: function (aggregatesText, column, element, aggregates, type) {
  92. if (type == "aggregates") {
  93. var renderString = "<div style='margin: 4px; float: right; height: 100%;'>";
  94. }
  95. else {
  96. var renderString = "<div style='float: right; height: 100%;'>";
  97. }
  98. var euro = dataAdapter.formatNumber(0.74 * aggregates.sum, "f2");;
  99. var usd = dataAdapter.formatNumber(aggregates.sum, "f2");;
  100. renderString += "<table><tr><td rowspan='2'><strong>Total: </strong></td><td>" + usd + " USD</td><tr><td>" + euro + " EUR</td></tr></table>";
  101. return renderString;
  102. }
  103. }
  104. ]
  105. });
  106. });
  107. </script>
  108. </head>
  109. <body class='default'>
  110. <div id="treeGrid"></div>
  111. </body>
  112. </html>