Zum Hauptinhalt springen

Benutzerdefinierte Ereignis-Box

dhtmlxScheduler bietet die Möglichkeit, eine benutzerdefinierte Anzeige für Ereignisse zu definieren.

Hinweis

Gilt nur für die Day View, Week View und Units View

Technik

Die Anpassung von Ereignissen erfolgt mit Hilfe der Methode renderEvent:

scheduler.renderEvent = function(container, ev) {
// your customizing code
}
  • container - der Container des Ereignisses
  • ev - das Ereignisobjekt

Benutzerdefinierte Ereignis-Box

Wichtige Hinweise

  • Die Rückgabe von true wendet die benutzerdefinierte Logik an, die Rückgabe von false wendet die Standardlogik an.
  • Einige CSS-Klassen haben eine spezielle Funktion (sie müssen zuerst im className des Elements stehen):
    • dhx_event_move - Ein Element mit diesem Stil kann gezogen werden (in der Regel ist es der Ereignis-Header).
    • dhx_event_resize - Das Ziehen eines Elements mit diesem Stil ändert die Dauer des Ereignisses.
const html = "<div className='dhx_event_move my_event_move' "

Beispiel

Hier ist ein Beispiel für ein benutzerdefiniertes Aussehen:

custom_event_box

[Festlegen eines benutzerdefinierten Aussehens für die Ereignis-Box](Specifying a custom look for the event's box)

scheduler.templates.event_class = function(start, end, event) {
return "my_event";
};

scheduler.renderEvent = function(container, ev) {
const container_width = container.style.width; // z.B. "105px"

// Verschiebebereich
let html = "<div className='dhx_event_move my_event_move' style='width: " +
container_width + "'></div>";

// Container für den Inhalt des Ereignisses
html+= "<div className='my_event_body'>";
html += "<span className='event_date'>";
//zwei Optionen hier: Nur das Startdatum für kurze Ereignisse oder Start-+Enddatum für längere
if ((ev.end_date - ev.start_date)/60000>40){ // wenn das Ereignis länger als 40 Minuten dauert
html += scheduler.templates.event_header(ev.start_date, ev.end_date, ev);
html += "</span>

";
} else {
html += scheduler.templates.event_date(ev.start_date) + "</span>";
}
// Anzeige des Texts des Ereignisses
html += "<span>" + scheduler.templates.event_text(ev.start_date,ev.end_date,ev)+
"</span>" + "</div>";

// der Bereich zur Größenänderung
html += "<div className='dhx_event_resize my_event_resize' style='width: " +
container_width + "'></div>";

container.innerHTML = html;
return true; //erforderlich, true - um ein benutzerdefiniertes Formular anzuzeigen, false - das Standardformular
};

und das dazugehörige CSS lautet Folgendes:

<style type="text/css" >
/* der Hintergrundfarbe für den ganzen Container und dessen Rand*/
.my_event {
background: #add8e6;
color: black;
border: 1px solid #778899;
overflow: hidden;
display: block;
}

.dhx_cal_event_clear.my_event {
height: 22px;
}

/* Stile für den Inhalt des Ereignisses */
.dhx_cal_event.my_event .my_event_body {
padding-top: 3px;
padding-left: 5px;
}
/* Informationen zum Datum des Ereignisses */
.my_event .event_date {
font-weight: bold;
padding-right: 5px;
}
/* Bereich zur Größenänderung des Ereignisses */
.my_event_resize {
height: 3px;
position: absolute;
bottom: -1px;
}
/* Bereich zum Verschieben des Ereignisses */
.my_event_move {
position: absolute;
top: 0;
height: 10px;
cursor: pointer;
}
</style>

Sie können auch CSS-Variablen anstelle fester Farbwerte verwenden, wie folgt:

<style>
.my_event {
--dhx-scheduler-event-background: #add8e6;
--dhx-scheduler-event-color: black;
--dhx-scheduler-event-border: 1px solid #778899;

overflow: hidden;
display: block;
}
</style>

Benutzerdefinierte Ereignis-Box

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.