0

WebServiceメソッドをデータソースとして使用するJQueryFullCalendarを作成しようとしています。

私の方法は:

[WebMethod]
public EventData[] ListEvents(int start, int end)
{
}

私のJavaScriptは次のとおりです。

$('#calendar').fullCalendar({
  events: 'MyWebService.asmx/ListEvents'
}

要求されているURLは次のとおりです。

http://localhost:49354/MyService.asmx/ListEvents?start=1338073200&end=1341702000&_=1341766605921

どちらが解決しないのですか?このJQueryを更新してWebMethodを正しく呼び出すにはどうすればよいですか?

4

1 に答える 1

1

私は解決策を見つけました:

$(document).ready(function () {
        $('#Calendar').fullCalendar({
          events: function (start, end, callback) {

            $.ajax({
              type: "POST",
              url: 'Webservice.asmx/ListEvents',
              cache: false,
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              success: function (data) {
                var events = [];
                $(data.d).each(function () {
                  events.push({
                    title: this.Title,
                    start: this.Start,
                    end: this.End
                  });
                });
                callback(events);
              },
              error: function (jqXHR, textStatus, errorThrown) {
                alert('There was an error');
              }
            });
          }
        });
      });

この例では、私のWebサービスがエポックからの秒数として時間を返します。

[WebMethod]
    public CalendarEvent[] ListEvents()
    {
      DateTime epoc = new DateTime(1970, 1, 1);
      return new CalendarEvent[]
      {        
        new CalendarEvent { Title = "Event 1", Start = new DateTime(2012,7,9,16,0,0).Subtract(epoc).TotalSeconds, End = new DateTime(2012,7,9,17,0,0).Subtract(epoc).TotalSeconds},
        new CalendarEvent { Title = "Event 2", Start = new DateTime(2012,7,12,12,0,0).Subtract(epoc).TotalSeconds, End = new DateTime(2012,7,12,13,0,0).Subtract(epoc).TotalSeconds}
      };      
    }
于 2012-07-09T13:21:10.177 に答える