Zum Hauptinhalt springen

Event-Objekt-Operationen

Das Event-Objekt abrufen​

Um das Event-Objekt zu erhalten, verwenden Sie die getEvent Methode:

scheduler.parse([
{id:1, start_date:"2027-05-13 6:00", end_date:"2027-05-13 8:00", text:"Event 1"},
{id:2, start_date:"2027-06-09 6:00", end_date:"2027-06-09 8:00", text:"Event 2"}
]);
...
const eventObj = scheduler.getEvent(1);
//->{id:1, start_date:"2027-05-13 6:00", end_date:"2027-05-13 8:00", text:"Event 1"}

Ereignisse aus dem angegebenen Zeitraum abrufen​

Um eine Sammlung von Ereignissen zu erhalten, die innerhalb des angegebenen Zeitraums auftreten, verwenden Sie die getEvents Methode:

const evs = scheduler.getEvents(new Date(2027,1,10),new Date(2027,2,10)); 
//where evs is an array of events' objects

Alle Ereignisse des Schedulers abrufen​

Um alle in den Scheduler geladenen Ereignisse zu erhalten, rufen Sie die getEvents Methode ohne Parameter wie folgt auf:

const evs = scheduler.getEvents();
// returns all events as an array of objects

Nächstes Ereignis ab dem aktuellen Datum abrufen​

const evs = scheduler.getEvents(new Date(), new Date(9999,1,1));    
//evs - Liste aller bevorstehenden Ereignisse
evs.sort(function(a,b){ return (a.start_date > b.start_date ? 1 : -1); });
//evs[0] - nächstes bevorstehendes Ereignis

Die ID des Ereignisses erhalten​

Um die ID des Ereignisses anhand des Wertes einer der Eigenschaften des Ereignisses zu erhalten, verwenden Sie die folgende Vorgehensweise:

Beispiel: Die ID des Ereignisses anhand des Texts des Ereignisses erhalten.

scheduler.parse([
{id:1, start_date:"2027-05-13 6:00", end_date:"2027-05-13 8:00", text:"Event 1"},
{id:2, start_date:"2027-06-09 6:00", end_date:"2027-06-09 8:00", text:"Event 2"}
]);
...

const evs = scheduler.getEvents(); //gets all events of the scheduler
for(let i = 0; i < evs.length; i++){ //geht alle Ereignisse durch, um das Gesuchte zu finden
if (evs[i].text == "Event 2")
const eventId = evs[i].id;// -> 2
};

Wenn Sie eine ungefähre Zeit kennen, zu der das benötigte Ereignis auftritt, ist es besser, die zurückgegebene Sammlung von Ereignissen zu begrenzen, um die Geschwindigkeit der Anwendung zu erhöhen:

const evs = scheduler.getEvents(new Date(2027,05,01),new Date(2027,05,10)); 
for(let i = 0; i < evs.length; i++){
if (evs[i].text == "Event 2")
const eventId = evs[i].id;// -> 2
};

Die ID des Ereignisses ändern​

Um die aktuelle ID eines Ereignisses zu ändern, verwenden Sie die changeEventId Methode wie folgt:

scheduler.changeEventId("ev15", "ev25"); //ändert die Ereignis-ID von "ev15" nach "ev25"

Die Beschriftung der Lightbox-Option als Text des Ereignisses festlegen​

Standardmäßig wird der Text eines Scheduler-Ereignisses über das im Lightbox-Feld zugeordnete Textfeld gesetzt.

default_event_text

Es ist auch möglich, das Standardverhalten neu zu definieren und die Beschriftung der im Kombinationsfeld ausgewählten Option als Text des Ereignisses zu verwenden.

option_event_text

Der Text eines Ereignisses wird durch eine der folgenden Vorlagen festgelegt: event_text oder event_bar_text, abhängig vom Typ der Ansicht. Um also das Schema zum Hinzufügen von Text zu einem Ereignis zu ändern, sollten Sie die entsprechende Vorlage neu definieren.

scheduler.config.lightbox.sections = [
{ name:"type", height:21, inputWidth:400, map_to:"type", type:"select",
options:scheduler.serverList("options", [
{key:1, label:"Simple"},
{key:2, label:"Complex"},
{key:3, label:"Unknown"}
]
)},
{name:"time", height:72, type:"time", map_to:"auto"}
];

scheduler.templates.event_text = scheduler.templates.event_bar_text = function(start, end, event){
const options = scheduler.serverList("options");

for(let i = 0; i < options.length; i++){
if(options[i].key == event.type){
return options[i].label;
}
}

return "";
};

Es gibt mehrere Hinweise zum obigen Code:

  • Die serverList-Methode wird verwendet, um Optionen für das Combobox bereitzustellen und sie innerhalb der Vorlage abzurufen. Sie können Optionen zusammen mit Ereignisdaten über JSON-Sammlungen laden (siehe Data formats) und sie später mit updateCollection aktualisieren.

  • Innerhalb der Vorlage gibt es eine lineare Suche nach einem ausgewählten Element. In einigen Fällen, wenn Sie viele Ereignisse/Optionen haben, kann dies die Leistung spürbar beeinflussen, da diese Vorlagen recht häufig aufgerufen werden können. Um dieses Problem zu lösen, können Sie eine Hash-Tabelle für eine schnelle Suche erstellen statt ständig ein Array zu durchlaufen.

  • Die Client-Seite sollte die vollständige Liste der Optionen haben, um sie anzuzeigen. Andernfalls müssen Sie die Optionen manuell laden, z. B. wenn Sie die Autocomplete-Suchfunktion verwenden, die die erforderlichen Optionen dynamisch lädt.

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.