New to Telerik UI for ASP.NET AJAX? Start a free 30-day trial
Populating the Recurrence Rule
The recurrence editor can be populated either from a RecurrenceRule object or from a string.
C#
RecurrenceEditor1.RecurrenceRule = new DailyRecurrenceRule(1, range);
// or
RecurrenceEditor1.RecurrenceRuleText = storedRule;
The following examples show how different rules can be generated in FormCrated event of the Scheduler.
HourlyRecurence:
C#
protected void RadScheduler1_FormCreated(object sender, SchedulerFormCreatedEventArgs e)
{
if (e.Container.Mode == SchedulerFormMode.AdvancedInsert)
{
RecurrenceEditor recurrenceEditor = e.Container.FindControl("RecurrenceEditor") as RecurrenceEditor;
//Creating a hourly Recurrence rule
int interval = 1;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromMinutes(30);
range.MaxOccurrences = 3;
recurrenceEditor.RecurrenceRule = new HourlyRecurrenceRule(interval, range);
}
}
DailyRecurence:
C#
//Creating a daily Recurrence rule
int interval = 1;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromHours(1);
range.MaxOccurrences = 3;
recurrenceEditor.RecurrenceRule = new DailyRecurrenceRule(interval, range);
//RecurrenceDay rd = RecurrenceDay.WeekDays;
//recurrenceEditor.RecurrenceRule = new DailyRecurrenceRule(rd, range);
WeeklyRecurence:
C#
//Creating a Weekly Recurrence rule
int interval = 2;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromMinutes(30);
range.MaxOccurrences = 3;
RecurrenceDay recurrenceDay = RecurrenceDay.Wednesday;
//To set multiple recurrence days, a bitwise mask should be used
//RecurrenceDay recurrenceDay = RecurrenceDay.Monday | RecurrenceDay.Wednesday | RecurrenceDay.Friday;
recurrenceEditor.RecurrenceRule = new WeeklyRecurrenceRule(interval, recurrenceDay, range);
//DayOfWeek startDayOfWeek = DayOfWeek.Tuesday;
//recurrenceEditor.RecurrenceRule = new WeeklyRecurrenceRule(interval, recurrenceDay, range, startDayOfWeek);
MonthlyRecurence:
C#
//Creating a monthly Recurrence rule
int interval = 1;
int dayOrdinal = 2;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromMinutes(30);
range.MaxOccurrences = 3;
recurrenceEditor.RecurrenceRule = new MonthlyRecurrenceRule(dayOrdinal, interval, range);
//RecurrenceDay DayOfWeekMask = RecurrenceDay.Monday;
//recurrenceEditor.RecurrenceRule = new MonthlyRecurrenceRule(dayOrdinal, DayOfWeekMask, interval, range);
YearlyRecurence:
C#
//Creating a yearly Recurrence rule
int dayOrdinal = 2;
RecurrenceRange range = new RecurrenceRange();
range.Start = DateTime.Now;
range.EventDuration = TimeSpan.FromMinutes(30);
range.MaxOccurrences = 3;
RecurrenceMonth month = RecurrenceMonth.June;
recurrenceEditor.RecurrenceRule = new YearlyRecurrenceRule(month, dayOrdinal, range);
//RecurrenceDay dayOfWeek = RecurrenceDay.Monday;
//recurrenceEditor.RecurrenceRule = new YearlyRecurrenceRule(dayOrdinal, month, dayOfWeek, range);
The recurrence rule can be created and directly added as a property of an Appointment as shown in the code:
C#
protected void RadButton1_Click(object sender, EventArgs e)
{
Appointment newAppointment = new Appointment();
newAppointment.Subject = RadTextBox1.Text;
newAppointment.Start = DateTime.Now;
newAppointment.End = DateTime.Now.Add(TimeSpan.FromHours(1));
int interval = 1;
RecurrenceRange range = new RecurrenceRange();
range.Start = newAppointment.Start;
range.EventDuration = newAppointment.End-newAppointment.Start;
range.MaxOccurrences = 3;
RecurrenceRule newDayly = new DailyRecurrenceRule(interval, range);
newAppointment.RecurrenceRule = newDayly.ToString();
RadScheduler1.InsertAppointment(newAppointment);
RadScheduler1.Rebind();
}