在RadScheduler中从c#创建定期约会

时间:2012-12-10 05:32:03

标签: c# telerik rad-controls

我正在尝试从telerik radschedular的代码创建一个定期约会。

Appointment recurringAppointment = new Appointment("1",
           Convert.ToDateTime("12/12/2012 3:30 PM").ToUniversalTime(),
           Convert.ToDateTime("12/12/2012 4:00 PM").ToUniversalTime(),
           "Sample appointment");

RecurrenceRange range = new RecurrenceRange();
range.Start = recurringAppointment.Start;
range.EventDuration = recurringAppointment.End - recurringAppointment.Start;
range.MaxOccurrences = 10;
HourlyRecurrenceRule rrule = new HourlyRecurrenceRule(2, range);

创建约会和重复规则后,我无法将它们组合在一起。 '复发规则' telerik的属性约会接受一个字符串。所以我无法将HourlyRecurrenceRule添加到我创建的约会中。

任何类型的c#代码帮助都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

正如Brian Mains在this article中指出的那样:

  

重复可以指定为每小时,每天,每周,每月或每小时   每年,并可以在某个日期或间隔结束。你看到了这个   规则作为字符串传递给约会;最后的结果   看起来如下:

     

DTSTART:20081122T143000Z \ r \ nDTEND:20081122T170000Z \ r \ nRRULE:FREQ = WEEKLY;

     

UNTIL = 20091021T040000Z; INTERVAL = 1 \ r \ n

Telerik's examples中,您可以看到RecurrenceEditor接受RecurrenceRule对象,但Appointment的RecurrenceRule属性只接受RecurrenceRule对象的字符串表示。

在您的最后一行代码之后,只需添加此代码即可:

recurringAppointment.RecurrenceRule = rrule.ToString()

答案 1 :(得分:0)

看起来你从他们的文档中得到了代码:

http://www.telerik.com/help/aspnet-ajax/scheduler-working-with-recurring-appointments.html

继承代码的其余部分(来自上面的网址)

// Prints the string representation of the recurrence rule:
string rruleAsString = rrule.ToString();
Console.WriteLine("Recurrence rule:\n\n{0}\n", rruleAsString);
// The string representation can be stored in a database, etc.
// ...
// Then it can be reconstructed using TryParse method:
RecurrenceRule parsedRule;
RecurrenceRule.TryParse(rruleAsString, out parsedRule);
Console.WriteLine("After parsing (should be the same):\n\n{0}", parsedRule);

这两种类型无法“组合”,您可以使用重复规则字符串在数据库中保存约会,并在加载时使用TryParse方法重新创建具有相同属性的新重复规则。

希望有所帮助:)