$(() => {
const chartDataSource = new DevExpress.data.DataSource({
store: {
type: 'odata',
url: 'https://js.devexpress.com/Demos/WidgetsGallery/odata/WeatherItems',
},
postProcess(results) {
return results[0].DayItems;
},
expand: 'DayItems',
filter: ['Id', '=', 1],
paginate: false,
});
const chartOptions = {
dataSource: chartDataSource,
title: 'Temperature in Seattle , 2017',
size: {
height: 420,
},
series: {
argumentField: 'Number',
valueField: 'Temperature',
type: 'spline',
},
legend: {
visible: false,
},
commonPaneSettings: {
border: {
visible: true,
width: 2,
top: false,
right: false,
},
},
export: {
enabled: true,
},
tooltip: {
enabled: true,
customizeTooltip(arg) {
return {
text: `${arg.valueText}°C`,
};
},
},
valueAxis: {
valueType: 'numeric',
grid: {
opacity: 0.2,
},
label: {
customizeText() {
return `${this.valueText}°C`;
},
},
},
argumentAxis: {
type: 'discrete',
grid: {
visible: true,
opacity: 0.5,
},
},
loadingIndicator: {
enabled: true,
},
};
$('#chart').dxChart(chartOptions);
$('#selectbox').dxSelectBox({
width: 150,
items: months,
value: 1,
valueExpr: 'id',
displayExpr: 'name',
onValueChanged(data) {
chartDataSource.filter(['Id', '=', data.value]);
chartDataSource.load();
},
});
});
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<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=1.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/22.2.3/css/dx.light.css" />
<script src="https://cdn3.devexpress.com/jslib/22.2.3/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 id="chart-demo">
<div id="chart"></div>
<div class="action">
<div class="label">Choose a month:</div>
<div id="selectbox"></div>
</div>
</div>
</div>
</body>
</html>
.action {
width: 270px;
margin-top: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
const months = [{
id: 1,
name: 'January',
}, {
id: 2,
name: 'February',
}, {
id: 3,
name: 'March',
}, {
id: 4,
name: 'April',
}, {
id: 5,
name: 'May',
}, {
id: 6,
name: 'June',
}, {
id: 7,
name: 'July',
}, {
id: 8,
name: 'August',
}, {
id: 9,
name: 'September',
}, {
id: 10,
name: 'October',
}, {
id: 11,
name: 'November',
}, {
id: 12,
name: 'December',
}];