私は、イベントソースとしてSharePoint 2013リストを使用しています。データテーブルとして使用されているので特別なものはありません。私はクライアントのJavaScript APIを使用して機能を(リストから)の項目を取得していますSharePoint 2013のイベントとAsyncQueryリスト
executeQueryAsync
ここでは、私が直面してる問題はdeletegatefunctionトリガーというコード
var clientContext = new SP.ClientContext.get_current();
oWebsite = clientContext.get_web();
var oList = oWebsite.get_lists().getByTitle('EventsList');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml("<View><ViewFields><FieldRefName='ID' /><FieldRef Name='Title' /><FieldRef Name='EventDate' /><FieldRef Name='EndDate' /></ViewFields><Query><Where><And><Geq><FieldRef Name='EventDate'/><Value Type='DateTime'>" + startDate + "</Value></Geq><Leq><FieldRef Name='EndDate'/><Value Type='DateTime'>" + endDate + "</Value></Leq></And></Where></Query></View>");
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
をですAsyncQueryが完了したときのみです。 onQuerySucceeded関数は次のとおりです。
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
eventSourceArray.push({ title: 'Test Event', start: '2017-02-08' });
while (listItemEnumerator.moveNext()) {
alert(listItemEnumerator);
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nID: ' + oListItem.get_id() +
alert(oListItem.get_item('Title'));
}
}
"警告"はテスト目的のみです。この機能にアラートを入力すると、そのアラートが表示されます。ただし、ソースにプッシュされたイベントは表示されません。クエリが完了したらカレンダーを更新する方法を探しています。
UPDATE:私が表示したい イベントがイベントソースとして使用されているeventSourceArrayで非同期に移入されます(以下のコードを参照してください)
jQuery('#calendrier').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
defaultDate: today,
lang: 'fr-ca',
buttonIcons: true,
weekNumbers: false,
editable: false,
eventLimit: true,
events: eventSourceArray
});
今、私は再ロードする方法を探していますカレンダーを使用するか、ページが既にロードされている場合でもArrayに追加されたイベントが表示されます。
更新日:
私はこれを試しましたが、効果はありません。 https://fullcalendar.io/docs/event_data/addEventSource/
jQuery('#calendrier').fullCalendar('refetchEventSources', eventSourceArray);
は、私は、配列の長さ(eventSourceArray)を表示するアラートを追加し、項目)はすべてそこにある
UPDATE:
は私の配列でイベントをリセットしようとしました
events: eventSourceArray
を呼び出してから、refetchEventsを呼び出すhttps://fullcalendar.io/docs/event_data/refetchEvents/
jQuery('#calendrier').fullCalendar('refetchEvents')