2014-05-19 2 views
0

반복 규칙 문자열을 telerik 개체로 구문 분석하려고하지만, 전혀 작동하지 않습니다. 문자열 패턴이 옳다고 판단 되더라도 결과는 항상 null입니다 (Kendo Recurrence 컨트롤에서 전달됨). 이것에 대한 어떤 생각이라도 고맙습니다.Telerik - RecurrenceRule - TryParse가 작동하지 않습니다.

enter image description here

업데이트 : 간격이 때

이 게시물 http://www.telerik.com/forums/parsing-recurrencerule-server-side 재발 규칙 당으로

enter image description here

답변

1

작동 : 내가 구문 분석 작업하거나하지 않는 경우 증명하기 위해 다른 경우 시도, 여기 결과입니다 지정된.

은 RecurrenceRule.TryParse에 의해 던져진 예외로서, 나는 간격 규칙이없는 경우가 발생 것으로 나타났습니다. RecurrenceRule.TryParse 메서드를 사용하려면 수동으로 추가해야합니다. 여기

는 원래 조노 업로드 된 수정 된 코드입니다

var today = DateTime.Now.Date; 
var start = today.AddDays(-14).AddHours(19); 
var end = start.AddHours(2.5); 

// Create a few recurring events using Kendo Web Scheduler and use the recurrence rules 
var patterns = new[] 
{ 
    "FREQ=DAILY;UNTIL=20140227T130000Z", 
    "FREQ=DAILY;INTERVAL=3;UNTIL=20140227T130000Z", 
    "FREQ=DAILY;INTERVAL=3;COUNT=4", 
    "FREQ=DAILY;INTERVAL=5", 
    "FREQ=WEEKLY;BYDAY=WE;INTERVAL=1", 
    "FREQ=WEEKLY;COUNT=5;BYDAY=TU,WE;INTERVAL=1", 
    "FREQ=WEEKLY;INTERVAL=4;COUNT=5;BYDAY=WE,TH,SA", 
    "FREQ=WEEKLY;INTERVAL=3;UNTIL=20140331T090000Z;BYDAY=WE,TH,SA", 
    "FREQ=MONTHLY;BYMONTHDAY=13;INTERVAL=1", 
    "FREQ=MONTHLY;COUNT=7;BYDAY=1FR;INTERVAL=1", 
    "FREQ=MONTHLY;UNTIL=20150212T130000Z;BYDAY=SU,SA;BYSETPOS=-1;INTERVAL=1", 
    "FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=25", 
    "FREQ=YEARLY;COUNT=3;BYMONTH=2;BYMONTHDAY=28", 
    "FREQ=YEARLY;UNTIL=20200306T130000Z;BYMONTH=8;BYDAY=3WE", 
    "FREQ=WEEKLY;COUNT=5;BYDAY=MO;INTERVAL=4", 
    "FREQ=WEEKLY;COUNT=2;BYDAY=MO;INTERVAL=1", 
}; 

// Now figure out which events will trigger in the next week - server side only - using Telerik.Web.UI.dll RecurrenceRule class. 
foreach (var expr in patterns) 
{ 
    var rrule = string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}\r\nDTEND:{1:yyyyMMddTHHmmssZ}\r\nRRULE:{2}", start, end, expr); 
    try 
    { 
     RecurrenceRule recRule = null; 
     var b = RecurrenceRule.TryParse(rrule, out recRule); 
     if (recRule == null) 
     { 
      Console.WriteLine("PARSE ERROR: " + expr); 
      continue; 
     } 
    } 
    catch (Exception) 
    { 
     Console.WriteLine("PARSE ERROR: " + expr); 
    } 
} 
관련 문제