Orchard FullCalendar模块 - 添加/编辑事件

时间:2013-12-14 13:48:53

标签: c# jquery fullcalendar orchardcms

我正在尝试使用jQuery FullCalendar(Link to the jQuery FullCalendar)为Orchard制作预订系统。 我发现这个youtube tutorial on how to install FullCalendar as a Widget in Orchard并在一段时间后在1.7.2中设置了它。 现在我希望能够从站点添加和编辑事件(目前它已经设置好,因此您必须通过管理面板添加新事件,与编辑相同)。

我认为我必须开始的地方可以在pastebin

当我使用以下代码时:

//dayClick: function(date, allDay, jsEvent, view) {

            //    if (allDay) {
            //        alert('Clicked on the entire day: ' + date);
            //    }else{
            //        alert('Clicked on the slot: ' + date);
            //    }

            //    alert('Coordinates: ' + jsEvent.pageX + ',' + jsEvent.pageY);

            //    alert('Current view: ' + view.name);
            //},

然后点击我日历上的时间它告诉我日期等等(所以onclick事件有效),我只是不确定我应该如何继续前进。 我希望能够从日历视图atm添加一个事件。到目前为止,我已经能够添加它,但不能将其保存到数据库中,我想这与它有关:

var fullCalEvents = [];
var iterator = function (event) {
     var newEvent;
     newEvent = new Booking.Event(event.title, event.start, event.end, event.url, false);
     fullCalEvents.push(newEvent);
                                };

但我不知道从哪里开始。

我写的当前选择是我可以添加事件但不将其保存在数据库中的选项。

如果需要,我可以提供更多信息!

我希望有人可以告诉我如何做到这一点。

谢谢

卡斯帕

1 个答案:

答案 0 :(得分:0)

让我们试试LeCattez,

我暂时不会乱用C#,但你可能知道我要谈的是什么。 在你的处理程序类中,你需要有类似的东西,这是来自SO的另一个问题。

<%@ WebHandler Language="C#" Class="MyHandler" %>

using System;
using System.Web;
public class MyHandler : IHttpHandler 
{
   public void ProcessRequest (HttpContext ctx) 
   {
       var json = new JSONResonse()
       {
           Success = ctx.Request.QueryString["name"] != null,
           Name = ctx.Request.QueryString["name"]
       };

       ctx.Response.ContentType = "application/json";
       ctx.Response.Write(JsonConvert.SerialzeObject(json));
}

   public bool IsReusable {
       get { return false; }
   }
}

在处理程序中,您必须获取从AJAX调用发送的数据。这是一个关于如何使用Jquery.Ajax发送数据的示例。

select: function(start, end, allDay, jsEvent, view){


 $.ajax({
    type: 'POST',                       
    url: ajaxcallURL(_url,"2001"),                  
    data: {"start":start,"end":end,"allDay":allDay },       //Here you can send data to server
    beforeSend:function(){
      //TODO do somethin before sendind data
    },
    complete:function(){
        calendar.fullCalendar( 'refetchEvents' ); //This line will force hte calendar to re-get all eventSources
        //wich means everytime you select a time period in calendar this will happen
    },                          
    success: function(data) 
    {   
        //TODO Do stuff with eventual data you need to send back to client
    },
    error: function(jqXHR, textStatus, errorThrown){
            //Handle errors here                    
    }
}); 

},//SELECT

当然你可以向服务器发送一个对象,例如一个JSON对象,然后像上面看到的那样获取那个对象。

在http处理程序中,您必须保存到数据库数据。

你知道吗?或者您需要进一步解释?让我知道......