
The Calendar supports automatic event reloading (in specified intervals).
AutoRefresh is disabled by default. You can enable it using autoRefreshEnabled property.
Configuration properties:
- autoRefreshEnabled (bool)
- autoRefreshInterval (int) - number of seconds between automatic reloads
- autoRefreshMaxCount(int) - maximum number of automatic reloads
- autoRefreshCommand(string) - a command value that will be passed to Command event when requesting a reload
Client Side
JavaScript
If enabled using autoRefreshEnabled property, it will fire onAutoRefresh event in the specified intervals.
dp.autoRefreshInterval = 10;
dp.autoRefreshMaxCount = 10;
dp.autoRefreshEnabled = true;
dp.onAutoRefresh = function(args) {
console.log("refreshing, iteration #" + args.i);
};
ASP.NET WebForms
If enabled, AutoRefresh will fire the Command event on the server side with the value of AutoRefreshCommand as the command name.
.aspx
<DayPilot:DayPilotCalendar ID="DayPilotCalendar1" runat="server" ... OnCommand="DayPilotCalendar1_Command" AutoRefreshEnabled="true" AutoRefreshInterval="10" AutoRefreshMaxCount="12" />
.aspx.cs
protected void DayPilotCalendar1_Command(object sender, DayPilot.Web.Ui.Events.CommandEventArgs e)
{
switch (e.Command)
{
case "refresh":
setDataSourceAndBind();
DayPilotCalendar1.DataBind();
DayPilotCalendar1.UpdateWithMessage("Events refreshed automatically");
break;
}
}
Demo
ASP.NET MVC
View
@Html.DayPilotCalendar("dpc", new DayPilotCalendarConfig()
{
BackendUrl = ResolveUrl("~/Calendar/Backend"),
...
AutoRefreshEnabled = true,
AutoRefreshInterval = 10,
AutoRefreshMaxCount = 5
})
Controller
protected override void OnCommand(CommandArgs e)
{
switch (e.Command)
{
case "refresh":
UpdateWithMessage("Refreshed");
break;
}
}
protected override void OnFinish()
{
// only load the data if an update was requested by an Update() call
if (UpdateType == CallBackUpdateType.None)
{
return;
}
DateTime start = StartDate;
DateTime end = StartDate.AddDays(Days + 1);
Events = new EventManager(Controller).FilteredData(start, end).AsEnumerable(); // your method
DataStartField = "start";
DataEndField = "end";
DataTextField = "text";
DataIdField = "id";
}
Demo
The demo page refreshes the events every 10 seconds for 2 minutes (maximum 12 times):
DayPilot