[英]Issue getting events Full Calendar asp.net / c#
首先,我會說我在這里嘗試了許多示例,而其他都沒有成功,因此請在此處發布建議。
我正在使用完整日歷。
這是開始:
$('#calendar')
.fullCalendar({
allDaySlot: false,
customButtons: {
reload: {
text: '+1 Year',
click: function() {
$('#calendar').fullCalendar('gotoDate', new Date(new Date().setFullYear(new Date().getFullYear() + 1)));
}
}
},
themeSystem: 'bootstrap4',
defaultView: 'agendaWeek',
eventClick: updateEvent,
selectable: true,
selectHelper: true,
events: "JsonResponse.ashx",
and other attributes.....
問題是日歷未顯示事件。
JsonResonse.ashx返回類似以下的字符串:
[{id: '1029',title: 'mr 1',clientphone: '1234556654',clientemail: 'mr1@gmail.com',start: '2018-05-21 10:00',end: '2018-05-21 11:45',allDay:false,description: 'New test on a new calender'},{id: '1030',title: 'mr 2',clientphone: '123456',clientemail: 'mr2@gmail.com',start: '2018-05-25 09:00',end: '2018-05-25 11:45',allDay:false,description: 'i like pringles'}]
但是在firefox上,我看到它不會使事件產生一些錯誤,例如:
SyntaxError: JSON.parse: expected property name or '}' at line 1 column 3 of the JSON data
因此,我使用了和Replace事件:“ JsonResponse.ashx”,並返回了字符串
[{id: '1029',title: 'mr 1',clientphone: '1234556654',clientemail: 'mr1@gmail.com',start: '2018-05-21 10:00',end: '2018-05-21 11:45',allDay:false,description: 'New test on a new calender'},{id: '1030',title: 'mr 2',clientphone: '123456',clientemail: 'mr2@gmail.com',start: '2018-05-25 09:00',end: '2018-05-25 11:45',allDay:false,description: 'i like pringles'}]
進行JSON返回的代碼:
return "{" +
"id: '" + cevent.id + "'," +
"title: '" + HttpContext.Current.Server.HtmlEncode(cevent.title) + "'," +
"clientphone: '" + HttpContext.Current.Server.HtmlEncode(cevent.clientphone) + "'," +
"clientemail: '" + HttpContext.Current.Server.HtmlEncode(cevent.clientemail) + "'," +
"start: '" + (cevent.start).ToString("yyyy-MM-dd HH:mm") + "'," +
"end: '" + (cevent.end).ToString("yyyy-MM-dd HH:mm") + "'," +
"allDay:" + allDay + "," +
"description: '" + HttpContext.Current.Server.HtmlEncode(cevent.description) + "'" +
"},";
基本上,我結合所有事件,然后返回。
就像這樣,它可以很好地工作,並在日歷上放置事件。 我在這里做錯了什么?
謝謝
JsonResponse.ashx處理程序返回的json無效。 您如何生成json? 我建議使用NewtonSoft使用JsonConvert.SerializeObject方法將您的事件列表序列化為json
這是您的ashx處理程序應返回的有效json。 注意屬性名稱和值的雙引號。
[{
"id": "1029",
"title": "mr1",
"clientphone": "1234556654",
"clientemail": "mr1@gmail.com",
"start": "2018-05-2110: 00",
"end": "2018-05-2111: 45",
"allDay": false,
"description": "Newtestonanewcalender"
},
{
"id": "1030",
"title": "mr2",
"clientphone": "123456",
"clientemail": "mr2@gmail.com",
"start": "2018-05-2509: 00",
"end": "2018-05-2511: 45",
"allDay": false,
"description": "ilikepringles"
}]
根據更新的問題,您需要像這樣更新json生成代碼:
return "{" +
"\"id\": \"" + cevent.id + "\"," +
"\"title\": \"" + HttpContext.Current.Server.HtmlEncode(cevent.title) + "\"," +
"\"clientphone\": \"" + HttpContext.Current.Server.HtmlEncode(cevent.clientphone) + "\"," +
"\"clientemail\": \"" + HttpContext.Current.Server.HtmlEncode(cevent.clientemail) + "\"," +
"\"start\": \"" + (cevent.start).ToString("yyyy-MM-dd HH:mm") + "\"," +
"\"end\": \"" + (cevent.end).ToString("yyyy-MM-dd HH:mm") + "\"," +
"\"allDay\":" + allDay + "," +
"\"description\": \"" + HttpContext.Current.Server.HtmlEncode(cevent.description) + "\"" +
"},";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.