fullcalendar不显示事件 [英] fullcalendar doesn't show events

查看:441
本文介绍了fullcalendar不显示事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想添加一些事件到fullcalendar。
aspx中的webmethod为js生成json
但我无法将web方法的结果与完整日历链接,
我只能添加手册事件。



the js:

$ $ $(document).ready(function(){
$('#btnInit')。click(function(){
var start = Date.parse($(#MainContent_dateD)。text());
var end = Date。 parse($(#MainContent_dateF)。text());
var cle = $(#MainContent_HF_cleU)。val();
$ .ajax({
type: POST,
url:ConsultationPlanning.aspx / getPlanning,
data:'{start:'+ start +',end:'+ end +'}' ,
contentType:application / json; charset = utf-8,
dataType:json,
成功:函数(msg){
if(msg == null ){
alert('no result');
return;
}
alert(received:+ msg.d);
document.getEleme ntById(MainContent_dateD)。innerHTML = msg.d;
$('#calendar')。fullCalendar({
eventSources:JSON.parse(msg.d)
});
},
错误:函数(msg){
alert(marche pas:+ msg);
}
});
});

'('#calendar')。fullCalendar({
header:{
left:'prev,next today',
center:'title',
right:'month,agendaweek,agendaDay'
},
hiddenDays:[0],
defaultView:'month',
editable:false,
allDaySlot:false,
selectable:false,
eventSources:[{
url:'ConsultationPlanning.aspx / getPlanning'
}]
});})

首先,此webmethods中的参数为String
和aspx.cs:

  public static String getPlanning(string start,string end)
{
List< String> ls1 =新列表< string>();
IList< Planning> ls2 =新列表< Planning>();

DateTime t = Convert.ToDateTime(start);
DateTime t2 = t.AddHours(1.0);
计划p =新计划();

for(int i = 0; i <4; i ++)
{
p.id =+ i +;
p.title =event+ i;
p.start = String.Format({0:s},t.AddDays(Convert.ToDouble(i)));
p.end = String.Format({0:s},t2.AddDays(Convert.ToDouble(i)));
ls2.Add(p);
}
System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
字符串sJSON = oSerializer.Serialize(ls2);
返回sJSON;
}

我将json文件检入jsonlint.com并验证,所以我猜错误是在js中,但我不知道在哪里。



和json:

  [
{id:0,title:event 0,start:2015-05-04T12:35:37,end :2015-05-04T13:35:37},
{id:1,title:event 1,start:2015-05-05T12:35:37 ,end:2015-05-05T13:35:37},
{id:2,title:event 2,start: 06T12:35:37,end:2015-05-06T13:35:37},
{id:3,title:event 3,start: 2015-05-07T12:35:37,end:2015-05-07T13:35:37}]

$ b $日历从未正确加载数据,因为它首先在没有事件的情况下加载到完整的日历中。并且,我想我应该做一个addEventSource ...
在移动document.ready(function)中的调用之后,
的解决方案是在事件中获取json的结果,而不是eventSource:

  $(document).ready(function(){
var start = Date.parse($( #MainContent_dateD)。text());
var end = Date.parse($(#MainContent_dateF)。text());
var cle = $(#MainContent_HF_cleU)。 val();

$ .ajax({
type:POST,
url:ConsultationPlanning.aspx / getPlanning,
data:'{开始:'+ start +',end:'+ end +'}',
contentType:application / json; charset = utf-8,
dataType: json,

成功:函数(msg){
if(msg == null){
alert('no result');
return;


$('#calendar')。fullCalendar({
header:{
left:'prev,next today',
cen ter:'title',
right:'month,agendaweek,agendaDay'
},
hiddenDays:[0],
defaultView:'month',
可编辑:false,
allDaySlot:false,
selectable:false,
events:JSON.parse(msg.d)
});
},

错误:函数(msg){
alert(function not working:+ msg);
}
});
})

现在我不关闭该主题,如果您有任何建议使代码更好。


i want to add some event to the fullcalendar. A webmethod in aspx generate a json to the js But i can't link the result of the web method with the full calendar, I just can add manuals events.

the js :

$(document).ready(function () {
$('#btnInit').click(function () {
    var start = Date.parse($("#MainContent_dateD").text());
    var end = Date.parse($("#MainContent_dateF").text());
    var cle = $("#MainContent_HF_cleU").val();
    $.ajax({
        type: "POST",
        url: "ConsultationPlanning.aspx/getPlanning",
        data: '{"start": "' + start + '", "end": "' + end + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            if (msg == null) {
                alert('no result');
                return;
            }
            alert("received: " + msg.d);
            document.getElementById("MainContent_dateD").innerHTML = msg.d;
            $('#calendar').fullCalendar({
                eventSources: JSON.parse(msg.d)
            });
        },
        error: function(msg){
            alert("marche pas : " + msg);
        }
    });
});

$('#calendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    hiddenDays: [0],
    defaultView: 'month',
    editable: false,
    allDaySlot: false,
    selectable: false,
    eventSources: [{
        url: 'ConsultationPlanning.aspx/getPlanning'
    }]
});})

firstly, parameters in this webmethods were String and the aspx.cs :

    public static String getPlanning(string start, string end)
    {
        List<String> ls1 = new List<string>();
        IList<Planning> ls2= new List<Planning>();

        DateTime t = Convert.ToDateTime(start);
        DateTime t2 = t.AddHours(1.0);
        Planning p=new Planning();

        for (int i = 0; i < 4; i++)
        {
            p.id = "" + i + "" ;
            p.title = "event "+i ;
            p.start = String.Format("{0:s}", t.AddDays(Convert.ToDouble(i)));
            p.end = String.Format("{0:s}", t2.AddDays(Convert.ToDouble(i)));
            ls2.Add(p);
        }
        System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        string sJSON = oSerializer.Serialize(ls2);
        return sJSON;
    }

I check the json file into jsonlint.com and it's validate, so i guess the mistake is in the js, but i don't see where.

and the json :

    [
    {"id":"0","title":"event 0","start":"2015-05-04T12:35:37","end":"2015-05-04T13:35:37"},
    {"id":"1","title":"event 1","start":"2015-05-05T12:35:37","end":"2015-05-05T13:35:37"},
    {"id":"2","title":"event 2","start":"2015-05-06T12:35:37","end":"2015-05-06T13:35:37"},
    {"id":"3","title":"event 3","start":"2015-05-07T12:35:37","end":"2015-05-07T13:35:37"}]

解决方案

The calendar never correctly load datas because, it was firstly load in the full calendar without events. and, i guess i should make a addEventSource... After have move the call in the document.ready(function), the solution was to get the result of the json in an event instead of the eventSource :

$(document).ready(function () {
var start = Date.parse($("#MainContent_dateD").text());
var end = Date.parse($("#MainContent_dateF").text());
var cle = $("#MainContent_HF_cleU").val();

$.ajax({
    type: "POST",
    url: "ConsultationPlanning.aspx/getPlanning",
    data: '{"start": "' + start + '", "end": "' + end + '"}',
    contentType: "application/json; charset=utf-8",
    dataType: "json",

    success: function (msg) {
        if (msg == null) {
            alert('no result');
            return;
        }

        $('#calendar').fullCalendar({
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
            },
            hiddenDays: [0],
            defaultView: 'month',
            editable: false,
            allDaySlot: false,
            selectable: false,
            events: JSON.parse(msg.d)
        });
    },

    error: function(msg){
        alert("function not working : " + msg);
    }
});
})

i don't close the subject now, if you have any suggestion to make the code better.

这篇关于fullcalendar不显示事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆