The onBeforeResHeaderRender event is fired once it for every row during init/update (when resources are loaded). See also onBeforeRowHeaderRender which is called on demand whenever the row header is rendered.




  • args.resource.areas
  • args.resource.backColor
  • args.resource.columns
  • args.resource.contextMenu
  • args.resource.cssClass
  • args.resource.expanded
  • args.resource.eventHeight
  • args.resource.fontColor (since 2018.2.3224)
  • args.resource.html
  • (read-only)
  • args.resource.loaded
  • args.resource.minHeight
  • args.resource.marginBottom
  • args.resource.start (read-only)
  • args.resource.toolTip

The args.resource.columns property is an array of column properties. Structure of the items (since build 8.1.2007):

  • html
  • backColor
  • cssClass

The column index counting (args.resource.columns[]) depends on rowHeaderColumnsMode ("Tabular" or "Legacy") - see below.

Tabular mode

Since version 2019.4.4063, the Scheduler uses Tabular mode for the row header columns by default.

  • When no columns are defined using rowHeaderColumns, the HTML of the row header (there is only one column) can be set using args.resource.html.
  • When columns are defined, the HTML of the row header can only be set using args.resource.columns[].html. The column numbers correspond to the columns defined using rowHeaderColumns property. The value of args.resource.html is ignored in this case (you need to use args.resource.columns[0].html instead).

Legacy mode

Properties of the first (default) column are controlled using args.row. The HTML of the first column is always defined using args.row.html.

Additional columns (which area available only if columns are specified using rowHeaderColumns) are acessible using args.row.columns[] array. That means the second column is accessible as args.row.columns[0].


dp.onBeforeResHeaderRender = function(args) {
  if (args.resource.loaded === false) {
    args.resource.html += " (loaded dynamically)";