DevExtreme jQuery/JS - Customize Cell Appearance
For Angular, AngularJS, and Knockout apps, DevExtreme provides the dxTemplate markup component. The following code shows how to use dxTemplate to define templates for cells.
Angular
<dx-calendar
[(value)]="currentDate">
<span *dxTemplate="let cellData of 'cell'; let i = index"
[style.font-style]="i == 0 || i == 6 ? 'italic' : 'normal'">
{{cellData.text}}
</span>
</dx-calendar>
import { DxCalendarModule } from "devextreme-angular";
// ...
export class AppComponent {
currentDate: Date = new Date();
}
@NgModule({
imports: [
// ...
DxCalendarModule
],
// ...
})Vue
<template>
<DxCalendar
:value="date"
cell-template="cell"
>
<template #cell="{ data: cell, index }">
<span :style="{ fontStyle: index === 0 || index === 6 ? 'italic' : 'normal' }">
{{ cell.text }}
</span>
</template>
</DxCalendar>
</template>
<script>
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';
import DxCalendar from 'devextreme-vue/calendar';
export default {
components: {
DxCalendar
},
data() {
return {
date: new Date()
}
}
}
</script>React
import React from 'react';
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';
import Calendar from 'devextreme-react/calendar';
const date = new Date();
function CustomCell(cellInfo, index) {
return (
<span style={{ fontStyle: index === 0 || index === 6 ? 'italic' : 'normal' }}>
{ cellInfo.text }
</span>
);
}
class App extends React.Component {
render() {
return (
<Calendar
defaultValue={date}
cellRender={CustomCell} />
);
}
}
export default App;If you use jQuery alone, use DOM manipulation methods to combine the HTML markup for cells. To apply this markup, use the cellTemplate callback function as shown in the following code.
$(function () {
$("#calendarContainer").dxCalendar({
value: new Date(),
cellTemplate: function (cellData, cellIndex, cellElement) {
var italic = $("<span>").css('font-style', 'italic')
.text(cellData.text);
var normal = $("<span>").text(cellData.text);
return (cellIndex == 0 || cellIndex == 6) ? italic : normal;
}
});
});In addition, you can use a 3rd-party template engine to customize widget appearance. For more information, see the 3rd-Party Template Engines article.
See Also
If you have technical questions, please create a support ticket in the DevExpress Support Center.