在Salesforce上的FullCalendar中重新设置JSON事件

在Salesforce上的FullCalendar中重新设置JSON事件,fullcalendar,Fullcalendar,我对Salesforce和多个用户使用完整日历。由于SF的限制,我不得不使用远程操作和JSON字符串。除了在进行更改时无法刷新JSON列表外,一切都很正常。我已经创建了一个自定义按钮来执行AddEventSource和/或RemoveEventSource和/或运行事件函数,以及许多其他组合,但都不起作用。它将只获取JSON字符串中已有的内容。我需要它去控制器,并获得新的数据渲染。我可以通过一个常规的提交按钮来完成这项工作,但是用户会返回到当前日期,而不是编辑的日期。我只需要重新蚀刻evt对象。

我对Salesforce和多个用户使用完整日历。由于SF的限制,我不得不使用远程操作和JSON字符串。除了在进行更改时无法刷新JSON列表外,一切都很正常。我已经创建了一个自定义按钮来执行AddEventSource和/或RemoveEventSource和/或运行事件函数,以及许多其他组合,但都不起作用。它将只获取JSON字符串中已有的内容。我需要它去控制器,并获得新的数据渲染。我可以通过一个常规的提交按钮来完成这项工作,但是用户会返回到当前日期,而不是编辑的日期。我只需要重新蚀刻evt对象。我确信我错过了一些简单的事情,但是已经6个月了,我不知所措。非常感谢您的帮助

<link href="{!$Resource.fullCalendarCSS}" rel="stylesheet" />
<link href="{!$Resource.fullCalendarPrintCSS}" rel="stylesheet" media="print" />
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.js"/>


函数getEventData(){//从soql数据库检索记录
Visualforce.remoting.Manager.invokeAction(
“{!$RemoteAction.PWMFullCalendarController.eventdata}”,//控制器和方法名称
功能(结果、事件){
如果(事件状态){
evt=JSON.parse(结果);
$('#calendar').fullCalendar({//html元素和库名称
事件:evt,
身高:650,
自定义按钮:{
BTN打印:{
文本:“打印”,
单击:函数(){
printPage();
}
},
btnRefresh:{
文本:“刷新”,
单击:函数(){
//清除所有事件
$('#calendar').fullCalendar('removeEventSource',evt);
$('日历').fullCalendar('addEventSource',evt);
警报(“刷新”);
}
}
},
标题:{
左:“上一个,下一个今天btnRefresh”,
中心:'标题',
右图:“月,agendaWeek,agendaDay btnPrint”
},
defaultView:'agendaWeek',
eventClick:函数(事件){
if(event.url){
打开(event.url,“编辑事件”,“高度=500,宽度=900,菜单栏=否,状态=否,滚动条=是,可调整大小=否”);
返回false;}
},
dayClick:函数(日期、事件、视图){
var startdate=日期格式(“MM/DD/YYYY”);
var starttime=date.format(“hh:mm a”);
window.open(“https://prestigewm.my.salesforce.com/00U/e?StartDateTime=“+起始日期+
“&StartDateTime_time=“+starttime+”&EndDateTime=“+startdate+”&EndDateTime_time=“+starttime,
“新事件”,“高度=500,宽度=1000,菜单栏=否,状态=否,滚动条=是,可调整大小=否”);
},
是的,
真的,
慢速持续时间:“00:30:01”,
营业时间:{开始时间:'07:00',结束时间:'20:00'}
}) 
}如果(event.type=='exception'){
console.log(事件消息);
}否则{
console.log(事件消息);
}
}, 
{escape:false}
);
}
$(文档).ready(函数(){
getEventData();
});
尝试使用

例如:默认日期:“2017-05-07”

当您知道要在fullcalendar中显示的确切日期时。 我希望有帮助

   function getEventData() {                         // records are retrieved from soql database
    Visualforce.remoting.Manager.invokeAction(
        '{!$RemoteAction.PWMFullCalendarController.eventdata}',  // controller and method names
        function(result, event){
            if (event.status) {
                evt =  JSON.parse(result);
                $('#calendar').fullCalendar({       // html element and library name
                    events: evt,

                    height: 650,                        
             customButtons: {
                btnPrint: {
                    text: 'Print',
                    click: function() {
                        printPage();
                    }
                   },
                btnRefresh: {
                    text: 'Refresh',
                    click: function() {
                   // Clear all events
                         $('#calendar').fullCalendar('removeEventSource', evt);

                         $('#calendar').fullCalendar('addEventSource', evt);
                         alert('Refresh');
                    }
                   }
                },


             header: {

                left: 'prev,next today btnRefresh',

                center: 'title',

                right: 'month,agendaWeek,agendaDay btnPrint'

                     },

             defaultView: 'agendaWeek',
             eventClick: function(event) {                    
                if (event.url ) {
                    window.open(event.url, "Edit Event", "height=500,width=900,menubar=no,status=no,scrollbars=yes, resizable=no");
                    return false;}
                                         },

            dayClick: function(date, jsevent, view) {
                var startdate = date.format("MM/DD/YYYY");
                var starttime = date.format("hh:mm a");
                window.open ("https://prestigewm.my.salesforce.com/00U/e?StartDateTime=" + startdate + 
                                     "&StartDateTime_time=" + starttime + "&EndDateTime=" + startdate + "&EndDateTime_time=" + starttime,
                                      "New Event", "height=500,width=1000,menubar=no,status=no,scrollbars=yes, resizable=no");

                                                     },
                                                                     editable: true,
            droppable: true,
            slotDuration: '00:30:01',
        businessHours: {start: '07:00', end:'20:00'}


                }) 
            } else if (event.type === 'exception') { 
                console.log(event.message);
            } else {
                console.log(event.message);
            }
        }, 
        {escape: false}
    );
}
$(document).ready(function() {
    getEventData();
});
</script>
<div id="calendar"></div>