Your search did not match any results.
Scheduler

Cell Templates

Documentation
This demo illustrates the ability of the Scheduler to customize the appearance of its cells. For this purpose the resourceCellTemplate and dataCellTemplate options are utilized.
Copy to Codepen
Apply
Reset
var DemoApp = angular.module('DemoApp', ['dx']); DemoApp.controller('DemoController', function DemoController($scope) { var dataSource = new DevExpress.data.DataSource({ store: data }); $scope.schedulerOptions = { dataSource: dataSource, views: ["month"], currentView: "month", currentDate: new Date(2016, 7, 2, 11, 30), firstDayOfWeek: 1, startDayHour: 8, endDayHour: 18, showAllDayPanel: false, height: 600, groups: ['employeeID'], resources: [ { fieldExpr: 'employeeID', allowMultiple: false, dataSource: employees, label: 'Employee' } ], resourceCellTemplate: 'resourceCellTemplate', dataCellTemplate: function(cellData, index, container) { var employeeID = cellData.groups.employeeID, currentTraining = getCurrentTraining(index, employeeID); if(isWeekEnd(cellData.startDate)) { container.addClass("employee-weekend-" + employeeID); } return $("<div>") .addClass("day-cell") .addClass(currentTraining) .addClass("employee-" + employeeID) .text(cellData.text); } }; function getCurrentTraining(index, employeeID) { var currentTraining, result = (index + employeeID) % 3; switch(result) { case 0: currentTraining = "abs-background"; break; case 1: currentTraining = "step-background"; break; case 2: currentTraining = "fitball-background"; break; default: currentTraining = ""; } return currentTraining; } function isWeekEnd (date) { var day = date.getDay(); return day === 0 || day === 6; } });
<!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="js/jquery-3.1.0.min.js"></script> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/17.1.4/css/dx.spa.css" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/17.1.4/css/dx.common.css" /> <link rel="dx-theme" data-theme="generic.light" href="https://cdn3.devexpress.com/jslib/17.1.4/css/dx.light.css" /> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/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/17.1.4/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 dx-scheduler="schedulerOptions" dx-item-alias="employee"> <div data-options="dxTemplate:{name:'resourceCellTemplate'}"> <div class='name' ng-style="{backgroundColor: employee.color }"><h2>{{employee.text}}</h2></div> <div class='avatar'> <img ng-src="{{employee.data.avatar}}" /></div> <div class='info'>Age: {{employee.data.age}}<br/><b>{{employee.data.discipline}}</b></div> </div> </div> </div> </body> </html>
.dx-scheduler-date-table-other-month.dx-scheduler-date-table-cell { opacity: 1; color: rgba(0, 0, 0, 0.3); } .dx-scheduler-group-header-content { position: relative; } .avatar{ width: 155px; float: left; overflow: hidden; position: relative; height: 125px; } .name { position: absolute; bottom: 0; left: 0; width: 100%; } .name h2{ color: #fff; text-align: left; padding: 0 0 5px 175px; } .info{ width: auto; text-align: left; height: 100%; font-size: 11pt; font-weight: normal; padding: 25px 20px; color: #707070; } .dx-color-scheme-contrast .info{ color: #FFF; } .userInfo div{ margin: 20px; } .day-cell{ width: 100%; height: 60px; background-position: center bottom; background-repeat: no-repeat; } .day-cell.employee-1{ background-color: rgba(86, 202, 133, 0.1); } .day-cell.employee-2{ background-color: rgba(255, 151, 71, 0.1); } .employee-weekend-1{ background-color: rgba(86, 202, 133, 0.1); } .employee-weekend-2{ background-color: rgba(255, 151, 71, 0.1); } .abs-background{ background-image: url("../../../../images/gym/icon-abs.png"); } .step-background{ background-image: url("../../../../images/gym/icon-step.png"); } .fitball-background{ background-image: url("../../../../images/gym/icon-fitball.png"); }
var employees = [{ text : "John Heart", id: 1, color: "#56ca85", avatar: "../../../../images/gym/coach-man.png", age: 27, discipline: "ABS, Fitball, StepFit" }, { text : "Sandra Johnson", id: 2, color: "#ff9747", avatar: "../../../../images/gym/coach-woman.png", age: 25, discipline: "ABS, Fitball, StepFit" }]; var data = [{ text: "Helen", employeeID: 2, startDate: new Date(2016, 7, 2, 9, 30), endDate: new Date(2016, 7, 2, 11, 30) }, { text: "Helen", employeeID: 2, startDate: new Date(2016, 7, 11, 9, 30), endDate: new Date(2016, 7, 12, 11, 30) }, { text: "Alex", employeeID: 1, startDate: new Date(2016, 7, 3, 9, 30), endDate: new Date(2016, 7, 3, 11, 30) }, { text: "Alex", employeeID: 1, startDate: new Date(2016, 7, 12, 12, 0), endDate: new Date(2016, 7, 12, 13, 0) }, { text: "Alex", employeeID: 2, startDate: new Date(2016, 7, 17, 9, 30), endDate: new Date(2016, 7, 17, 11, 30) }, { text: "Stan", employeeID: 1, startDate: new Date(2016, 7, 8, 9, 30), endDate: new Date(2016, 7, 8, 11, 30) }, { text: "Stan", employeeID: 1, startDate: new Date(2016, 7, 29, 9, 30), endDate: new Date(2016, 7, 29, 11, 30) }, { text: "Stan", employeeID: 1, startDate: new Date(2016, 7, 31, 9, 30), endDate: new Date(2016, 7, 31, 11, 30) }, { text: "Rachel", employeeID: 2, startDate: new Date(2016, 7, 5, 9, 30), endDate: new Date(2016, 7, 5, 11, 30) }, { text: "Rachel", employeeID: 2, startDate: new Date(2016, 7, 8, 9, 30), endDate: new Date(2016, 7, 8, 11, 30) }, { text: "Rachel", employeeID: 1, startDate: new Date(2016, 7, 22, 9, 30), endDate: new Date(2016, 7, 22, 11, 30) }, { text: "Kelly", employeeID: 2, startDate: new Date(2016, 7, 16, 9, 30), endDate: new Date(2016, 7, 16, 11, 30) }, { text: "Kelly", employeeID: 2, startDate: new Date(2016, 7, 30, 9, 30), endDate: new Date(2016, 7, 30, 11, 30) }];