DevExtreme v24.1 is now available.

Explore our newest features/capabilities and share your thoughts with us.

Your search did not match any results.

JavaScript/jQuery Gauges - Variable Number of Bars

This demo shows how to use the API of the BarGauge to change the number of indicated values at runtime. For this purpose, an array of new values is passed as the parameter of the value method.

Backend API
$(() => { const productsToValues = function () { return $.map(products, (item) => (item.active ? item.count : null)); }; const gauge = $('#gauge').dxBarGauge({ startValue: 0, endValue: 50, values: productsToValues(), label: { format: { type: 'fixedPoint', precision: 0, }, }, }).dxBarGauge('instance'); $('#panel').append($.map(products, (product) => $('<div></div>').dxCheckBox({ value: product.active, text: product.name, onValueChanged(data) { product.active = data.value; gauge.values(productsToValues()); }, }))); });
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/24.1.7/css/dx.light.css" /> <script src="js/dx.all.js"></script> <script src="data.js"></script> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="index.js"></script> </head> <body class="dx-viewport"> <div class="demo-container"> <div class="long-title"><h3>Sampling by Goods</h3></div> <div id="gauge-demo"> <div id="gauge"></div> <div id="panel"></div> </div> </div> </body> </html>
#gauge-demo { height: 440px; width: 100%; } #gauge { width: 80%; height: 100%; margin-top: 20px; float: left; } #panel { width: 150px; text-align: left; margin-top: 20px; float: left; } .dx-checkbox { margin-bottom: 10px; display: block; } .long-title h3 { font-weight: 200; font-size: 28px; text-align: center; margin-bottom: 20px; }
const products = [{ name: 'Hammers', count: 41, active: true, }, { name: 'Shovels', count: 32, active: true, }, { name: 'Ladders', count: 13, active: true, }, { name: 'Watering cans', count: 48, active: true, }, { name: 'Screwdrivers', count: 24, active: true, }, { name: 'Nail pullers', count: 8, active: true, }, { name: 'Drills', count: 19, active: true, }];