Articles in this section
Category / Section

How to customize the Scheduler Toolbar

1 min read

This knowledge base explains the way to customize scheduler toolbar items.

 

Step 1: Bind the actionBegin event to rearrange the default toolbar items as shown in the following code example.

onActionBegin(args: ActionEventArgs): void {
    if (args.requestType === 'toolbarItemRendering') {
      const arg = args as any;
      const item0 = arg.items[0];
      const item1 = arg.items[1];
      item1.align = 'right';
      // Getting date range text
      let item2 = arg.items[2];
      const dateRangeText = {
        align: 'center',
        text: item2.text,
        cssClass: 'e-custom'
      };
      item2 = dateRangeText;
      // Rearranging the toolbar items
      arg.items[0] = item0;
      arg.items[1] = item2;
      arg.items[2] = item1;
    }
}

 

actionBegin : https://ej2.syncfusion.com/angular/documentation/api/schedule/#actionbegin

 

Step 2: Bind the dataBinding event to change the date range text on initial loading as shown in the following code example.

onDataBinding(): void {
    if (this.flag) {
      this.dateRangetext();
      this.flag = false;
    }
}

 

dataBinding: https://ej2.syncfusion.com/angular/documentation/api/schedule/#databinding

 

Step 3: Bind the actionComplete event to change the date range text on navigation as shown in the following code example.

onActionComplete(args: ActionEventArgs): void {
    if (args.requestType === 'dateNavigate') {
      this.dateRangetext();
    }
}

 

actionComplete: https://ej2.syncfusion.com/angular/documentation/api/schedule/#actioncomplete

 

Step 4: Add the method and its code as follows.

public dateRangetext(): void {
    const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
      "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    let startDate = (this.scheduleObj.getCurrentViewDates()[0] as Date);
    let endDate = this.scheduleObj.getCurrentViewDates()[this.scheduleObj.getCurrentViewDates().length - 1] as Date;
    let startYear = startDate.getFullYear() === endDate.getFullYear() ? '' : ', ' + startDate.getFullYear();
    let startTxt = '' + monthNames[startDate.getMonth()] + ' ' + startDate.getDate() + '' + startYear + ' -';
    let endTxt = ' ' + monthNames[endDate.getMonth()] + ' ' + endDate.getDate() + ', ' + endDate.getFullYear();
    (document.querySelector('.e-toolbar-item.e-custom') as HTMLElement).innerText = startTxt + endTxt;
}

 

Step 5: Run the sample, the date range text will be centre aligned in the toolbar as shown below. o/p

Figure 1: Customized Scheduler Toolbar

Refer to the example from the following GitHub link.

Example – Scheduler with customized toolbar

 

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please  to leave a comment
Access denied
Access denied