2013-12-14 50 views
0

我想通過使用jQuery FullCalendar(Link to the jQuery FullCalendar)爲Orchard預訂系統。 我發現這個youtube tutorial on how to install FullCalendar as a Widget in Orchard並得到它在1.7.2後設置一段時間。 現在,我希望能夠添加和編輯站點中的事件(目前它的設置使您必須通過管理面板添加新事件,與編輯相同)。果園FullCalendar模塊 - 添加/編輯事件

我想我必須開始的地方可以在這​​個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); 
           }; 

但我不知道從哪裏開始。

我寫的當前選擇是我可以添加事件但不保存在數據庫中的選擇。

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

我希望有人能夠啓發我如何做到這一點。

謝謝

卡斯帕

+0

你好LeCattez你可以顯示你的「select:」從fullcalendar回調嗎? 在fullCalEvents數組,如果我是你,我會添加簡單的JSON對象,然後你可以使用該數組,並將其添加到Fullcalendar eventSources ... –

+0

你好。除了在pastebin中的「選擇」,我什麼也沒有。我只是用它來試用它。它所做的只是添加一個事件直到刷新,這就是爲什麼我需要將它保存到數據庫。 我只是有點困惑如何做到這一點。 – LeCattez

+0

對不起,我錯過了pastebin,如果你想預訂一個事件,客戶端,並保存在數據庫中,我會在選擇回調中獲取事件屬性,就像你現在正在做的那樣,並將這些值通過AJAX調用傳遞給服務器,在AJAX調用中成功回調後將其保存到數據庫刷新日曆以獲取您的eventSources。如果你需要一個例子讓我知道。 –

回答

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 

Offcourse您可以發送到服務器的對象,例如一個JSON對象並獲取該對象有像你上面看到的例子。

否在http處理程序中,您將不得不將其保存到DB數據。

你明白了嗎?或者你需要進一步的解釋?讓我知道...

+0

我是否需要這麼多代碼才能將其保存到數據庫中?我無法像保存在管理面板中一樣保存它嗎? (並不是說我對上述內容有任何反對意見,它似乎只是我認爲可能更簡單的大部分代碼)。 我仍然不太確定我的AJAX網址是什麼,在這個項目中並沒有真正使用過它(剛剛在Visual Studio和nhibernation中通過。Orchard使用數據庫)。 哦,當然,感謝您的幫助! – LeCattez

+0

那麼你只需要AJAX調用的一部分,你可以用你的框架以某種方式從AJAX調用中獲得請求......這個url是你的projet Http請求處理程序的路徑,但那需要你來弄清楚它.. ..並且來這是最簡單的它得到人:P 如果您需要更多解釋讓我知道。 –