const DemoApp = angular.module('DemoApp', ['dx']);
DemoApp.controller('DemoController', ($scope) => {
$scope.employees = employees;
$scope.dataGridOptions = {
bindingOptions: {
dataSource: 'employees',
},
columns: ['FirstName', 'LastName', 'BirthYear', 'City', 'Title'],
showBorders: true,
columnAutoWidth: true,
};
$scope.rangeSelectorOptions = {
margin: {
top: 20,
},
dataSource: employees,
dataSourceField: 'BirthYear',
scale: {
tickInterval: 1,
minorTickInterval: 1,
label: {
format: {
type: 'decimal',
},
},
},
behavior: {
valueChangeMode: 'onHandleMove',
},
title: 'Filter Employee List by Birth Year',
onValueChanged(e) {
const selectedEmployees = $.grep(
employees,
(employee) => employee.BirthYear >= e.value[0] && employee.BirthYear <= e.value[1],
);
$scope.employees = selectedEmployees;
},
};
});
<!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/23.1.5/css/dx.light.css" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script>window.angular || document.write(decodeURIComponent('%3Cscript src="js/angular.min.js"%3E%3C/script%3E'))</script>
<script src="https://cdn3.devexpress.com/jslib/23.1.5/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" ng-app="DemoApp" ng-controller="DemoController">
<div id="range-selector-demo">
<div id="range-selector" dx-range-selector="rangeSelectorOptions"></div>
<h2>Selected Employees</h2>
<div dx-data-grid="dataGridOptions"></div>
</div>
</div>
</body>
</html>
#range-selector {
height: 140px;
}
#range-selector-demo h2 {
font-size: 20px;
margin: 38px 0 10px;
text-align: center;
}
const employees = [
{
LastName: 'Davolio', FirstName: 'Nancy', BirthYear: 1948, City: 'Seattle', Title: 'Sales Representative',
},
{
LastName: 'Fuller', FirstName: 'Andrew', BirthYear: 1952, City: 'Tacoma', Title: 'Vice President, Sales',
},
{
LastName: 'Leverling', FirstName: 'Janet', BirthYear: 1963, City: 'Kirkland', Title: 'Sales Representative',
},
{
LastName: 'Peacock', FirstName: 'Margaret', BirthYear: 1937, City: 'Redmond', Title: 'Sales Representative',
},
{
LastName: 'Buchanan', FirstName: 'Steven', BirthYear: 1955, City: 'London', Title: 'Sales Manager',
},
{
LastName: 'Suyama', FirstName: 'Michael', BirthYear: 1963, City: 'London', Title: 'Sales Representative',
},
{
LastName: 'King', FirstName: 'Robert', BirthYear: 1960, City: 'London', Title: 'Sales Representative',
},
{
LastName: 'Callahan', FirstName: 'Laura', BirthYear: 1958, City: 'Seattle', Title: 'Inside Sales Coordinator',
},
{
LastName: 'Dodsworth', FirstName: 'Anne', BirthYear: 1966, City: 'London', Title: 'Sales Representative',
},
];