Я пытаюсь создать систему бронирования для Orchard, используя jQuery FullCalendar (ссылка на jQuery FullCalendar). Я нашел этот учебник по youtube о том, как установить FullCalendar в качестве виджета в 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);
};
Но я не уверен, с чего начать.
Текущий выбранный мной текст - это тот, где я могу добавить событие, но не сохранять его в базе данных.
Я могу предоставить дополнительную информацию, если потребуется!
Надеюсь, кто-то может просветить меня о том, как это сделать.
спасибо
Casper
Давайте попробуем LeCattez,
Я не общаюсь с С# некоторое время, но вы можете знать, о чем я буду говорить. В вашем классе обработчика вам нужно будет что-то вроде этого, это из другого вопроса здесь, в 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, вам нужно будет сохранить данные БД.
Вы поняли? Или вам нужны дополнительные объяснения? Дай мне знать...