Sharepoint 使用RESTAPI在页面上显示日历视图
我想使用rest api在页面上显示calendar.aspx视图,而不使用服务器代码或Web部件。Sharepoint 使用RESTAPI在页面上显示日历视图,sharepoint,Sharepoint,我想使用rest api在页面上显示calendar.aspx视图,而不使用服务器代码或Web部件。 有没有办法做到这一点。您可以使用Jquery和fullcalendar.io插件使用客户端脚本来显示日历视图 不需要服务器端代码,您可以将所有数据存储在sharepoint的现有日历中。仅在渲染时,我们将使用Jquery完整日历插件。 下面的函数retreive将从sharepoint日历列表中获取数据 function Retreive() { var listUrl = "../_vti_b
有没有办法做到这一点。您可以使用Jquery和fullcalendar.io插件使用客户端脚本来显示日历视图 不需要服务器端代码,您可以将所有数据存储在sharepoint的现有日历中。仅在渲染时,我们将使用Jquery完整日历插件。 下面的函数retreive将从sharepoint日历列表中获取数据
function Retreive() {
var listUrl = "../_vti_bin/ListData.svc/UpcomingEvents";
$.ajax({
url: listUrl,
type: "GET",
data: {
$select: "Title,Description,StartTime,EndTime,AllDayEvent,Recurrence,Id"
},
headers: {
accept: "application/json;odata=verbose"
},
success: function(data) {
$.each(data.d.results, function(i) {
currObj = this;
var fADE = currObj.AllDayEvent;
if (fADE != null) {
if (fADE == 0) {
thisADE = false
} else thisADE = true;
}
var thisID = currObj.Id;
var thisTitle = currObj.Title;
var thisRecurrence = currObj.Recurrence;
var thisDesc = currObj.Description;
var x = new Date(parseInt(currObj.StartTime.substr(6)));
var y = new Date(parseInt(currObj.EndTime.substr(6)));
ele.push({
title: currObj.Title,
id: currObj.Id,
start: x,
description: currObj.Description,
end: y,
allDay: thisADE,
});
});
BindCalendar();
}
});}
函数bindcalendar将把数组“ele”中的数据加载到日历插件中
function BindCalendar() {
var calendarioDiv = $('#calendar');
var fullCalendar = calendarioDiv.fullCalendar({
events: ele,
error: function() {
alert('Error');
},
editable: false,
firstDay: 0,
monthNames: ['JANUARY', 'FEBRUARY',
'MARCH', 'APRIL', 'MAY',
'JUNE', 'JULY', 'AUGUST', 'SEPTEMBER',
'OCTOBER', 'NOVEMBER', 'DECEMBER'
],
dayNames: ['Sunday', 'Monday', 'Tuesday',
'Wednesday', 'Thursday', 'Friday', 'Saturday'
],
dayNamesShort: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
allDay: true
});}
见参考条款-
谢谢您的解决方案。但这样做也会返回来自不同日历的覆盖事件。也可以在没有第三方js参考的情况下执行相同操作。否这将仅从日历“UpcomingEvents”列表返回事件。但是,如果要从多个日历返回事件,可以对每个日历执行多个异步ajax调用,并将其存储在“ele”数组中,该数组将是绑定到jquery日历的单个数据源。是的,这是正确的,但我的网站集有多个网站和子网站。所以我没有关于日历的位置以及名称和URL的信息。使用overlaid,它将在一个主日历中显示所有事件。因此,如果可以使用一些rest api或jquery在页面上显示此master calendar.aspx视图。如果您可以在配置列表中存储日历名称和url,并且可以在母版页中使用它来检索事件,这将非常有用。但是,如果有多个站点和子站点,则可能需要考虑递归地列出所有子站点,并获得日历类型的列表。谢谢您的建议。