Jquery FullCalendar事件在周视图中显示两次
我在FullCalendar中添加了一个新事件。该事件在“日”视图中显示时显示为一个div,但在视图更改为“周”时显示为两个附加div 以下是我的脚本代码:Jquery FullCalendar事件在周视图中显示两次,jquery,fullcalendar,Jquery,Fullcalendar,我在FullCalendar中添加了一个新事件。该事件在“日”视图中显示时显示为一个div,但在视图更改为“周”时显示为两个附加div 以下是我的脚本代码: @model Alis.AgentPortal.Models.MeetingVM @using Alis.AgentPortal.Helpers @{ ViewBag.Title = "Calender"; Layout = "~/Views/Shared/_LayoutforMarketRep.cshtml"; } @s
@model Alis.AgentPortal.Models.MeetingVM
@using Alis.AgentPortal.Helpers
@{
ViewBag.Title = "Calender";
Layout = "~/Views/Shared/_LayoutforMarketRep.cshtml";
}
@section scripts{
@Styles.Render("~/Content/Calender")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/scripts")
}
<script type="text/javascript">
$(document).ready(function () {
$.ajaxSetup({
cache: false
});
function SetValidate() {
var valMessage1 = "";
if ($("#eventTitle").val() == "") {
valMessage1 = valMessage1 + "Please enter subject.";
valMessage1 = valMessage1 + "\n";
}
if ($("#eventDate").val() == "") {
valMessage1 = valMessage1 + "Please enter effective date.";
valMessage1 = valMessage1 + "\n";
}
//if ($("#Status").val() == "") {
// valMessage1 = valMessage1 + "Please enter Meeting Status.";
// valMessage1 = valMessage1 + "\n";
//}
var Req = $('#whoRequired').find(":selected").text();
if (Req == null || Req == "") {
valMessage1 = valMessage1 + "Please enter required person.";
valMessage1 = valMessage1 + "\n";
}
var numbers = /^[0-9]+$/;
if (!$('#eventDuration').val().match(numbers)) {
valMessage1 = valMessage1 + "Please enter appointment length in numeric.";
valMessage1 = valMessage1 + "\n";
}
return valMessage1;
}
$("#btnPopupSave").click(function () {
if (SetValidate() != "") {
alert(SetValidate());
}
else {
$('#popupEventForm').hide();
var blkstr = "";
$.each($("#whoRequired").val(), function (idx2, val2) {
blkstr = val2 + "," + blkstr;
});
var Reminder = "";
if ($('#chkReminder').prop('checked')) {
Reminder = true;
} else {
Reminder = false;
}
var dataRow = {
'MeetingId': $('#MeetingId').val(),
'Title': $('#eventTitle').val(),
'NewEventTime': $('#eventTime').val(),
'WhoRequired': blkstr,
'Descripttion': $('#txtdescription').val(),
'Status': $('#Status').val(),
'NewEventDate': $('#eventDate').val(),
'Remider': Reminder,
'NewEventDuration': $('#eventDuration').val(),
'Notes': $('#txtnotes').val(),
}
ClearPopupFormValues();
$.ajax({
type: 'POST',
url: "/Calender/SaveEvent",
data: dataRow,
success: function (response) {
if (response == 'True') {
$('#calendar').fullCalendar('refetchEvents');
alert('New event saved!');
}
else {
alert('Error, could not save event!');
}
}
});
}
});
var sourceFullView = { url: '/Calender/GetDiaryEvents/' };
var sourceSummaryView = { url: '/Calender/GetDiarySummary/' };
var CalLoading = true;
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
defaultView: 'agendaDay',
editable: true,
allDaySlot: false,
selectable: true,
slotMinutes: 15,
events: '/Calender/GetDiaryEvents/',
eventClick: function (calEvent, jsEvent, view) {
ShowEventDetails(calEvent.id);
//alert(JSON.stringify(calEvent));
//alert('You clicked on event id: ' + calEvent.id
// + "\nSpecial ID: " + calEvent.someKey
// + "\nAnd the title is: " + calEvent.title);
},
eventDrop: function (event, dayDelta, minuteDelta, allDay, revertFunc) {
if (confirm("Confirm move?")) {
UpdateEvent(event.id, event.start);
}
else {
revertFunc();
}
},
eventResize: function (event, dayDelta, minuteDelta, revertFunc) {
if (confirm("Confirm change appointment length?")) {
UpdateEvent(event.id, event.start, event.end);
}
else {
revertFunc();
}
},
dayClick: function (date, allDay, jsEvent, view) {
$('#eventTitle').val("");
$('#eventDate').val($.fullCalendar.formatDate(date, 'dd/MM/yyyy'));
$('#eventTime').val($.fullCalendar.formatDate(date, 'HH:mm'));
ShowEventPopup(date);
},
viewRender: function (view, element) {
if (!CalLoading) {
if (view.name == 'month') {
$('#calendar').fullCalendar('removeEventSource', sourceFullView);
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', sourceSummaryView);
}
else {
$('#calendar').fullCalendar('removeEventSource', sourceSummaryView);
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', sourceFullView);
}
}
}
});
CalLoading = false;
$('#btnPopupCancel').click(function () {
ClearPopupFormValues();
$('#popupEventForm').hide();
});
$('#btnInit').click(function () {
$.ajax({
type: 'POST',
url: "/Calender/Init",
success: function (response) {
if (response == 'True') {
$('#calendar').fullCalendar('refetchEvents');
alert('Database populated! ');
}
else {
alert('Error, could not populate database!');
}
}
});
});
});
function ShowEventDetails(id) {
$.ajax({
type: 'POST',
url: "/Calender/GetDiaryEventsforBinding",
data: { 'id': id },
success: function (data) {
if (data != null) {
$("#MeetingId").val(data.collection[0].MeetingId);
$("#eventTitle").val(data.collection[0].MeetingSubject);
$("#eventDuration").val(data.collection[0].MeetingDuration);
$("#eventDate").val(formatDate(data.collection[0].ScheduledDate));
$("#eventTime").val(formatTime(data.collection[0].ScheduledDate));
var dataReq = data.collection[0].RequiredPersons;
var dataarray = dataReq.split(",");
$("#whoRequired").val(dataarray);
//$("#whoRequired").prop('disabled', 'disabled');
var mstatus = data.collection[0].MeetingStatus;
//alert(JSON.stringify(abc))
//$("#Status").val(data.collection[0].MeetingStatus);
$("#Status option[value= '" + mstatus + "']").attr("selected", "selected");
if (data.collection[0].MeetingRemainder == "0") {
$("#chkReminder").prop('checked', false)
}
else { $("#chkReminder").prop('checked', true) }
$("#txtdescription").val(data.collection[0].MeetingDescription);
$("#txtnotes").val(data.collection[0].Notes);
}
else {
alert('Error, could not populate database!');
}
}
});
//$("#eventDate").val(data.collection.EventStart);
//$("#eventDate").val(data.collection.EventStart);
$('#popupEventForm').show();
}
function ShowEventPopup(date) {
ClearPopupFormValues();
$('#popupEventForm').show();
$('#eventTitle').focus();
}
function ClearPopupFormValues() {
$('#eventID').val('');
$('#eventTitle').val('');
$('#txtdescription').val('');
$('#chkReminder').checked
$('#eventDuration').val('');
$('#txtNotes').val('');
$('#whoRequired').val('');
}
function UpdateEvent(EventID, EventStart, EventEnd) {
var dataRow = {
'ID': EventID,
'NewEventStart': EventStart,
'NewEventEnd': EventEnd
}
$.ajax({
type: 'POST',
url: "/Calender/UpdateEvent",
dataType: "json",
contentType: "application/json",
data: JSON.stringify(dataRow)
});
}
</script>
<link href="~/Content/Calender/fullcalendar.css" rel="stylesheet" />
<script src="~/Scripts/fullcalendar.js"></script>
@model.AgentPortal.Models.MeetingVM
@使用Alis.AgentPortal.Helpers
@{
ViewBag.Title=“日历”;
Layout=“~/Views/Shared/_LayoutforMarketRep.cshtml”;
}
@节脚本{
@样式。渲染(“~/Content/calendar”)
@Scripts.Render(“~/bundles/modernizer”)
@Scripts.Render(“~/bundles/Scripts”)
}
$(文档).ready(函数(){
$.ajaxSetup({
缓存:false
});
函数SetValidate(){
var valMessage1=“”;
如果($(“#eventTitle”).val()=“”){
valMessage1=valMessage1+“请输入主题。”;
valMessage1=valMessage1+“\n”;
}
if($(“#eventDate”).val()=“”){
valMessage1=valMessage1+“请输入生效日期。”;
valMessage1=valMessage1+“\n”;
}
//如果($(“#状态”).val()=“”){
//valMessage1=valMessage1+“请输入会议状态。”;
//valMessage1=valMessage1+“\n”;
//}
var Req=$(“#whoRequired”).find(“:selected”).text();
如果(Req==null | | Req==“”){
valMessage1=valMessage1+“请输入所需人员。”;
valMessage1=valMessage1+“\n”;
}
变量数=/^[0-9]+$/;
if(!$('#eventDuration').val().match(数字)){
valMessage1=valMessage1+“请以数字形式输入约会长度。”;
valMessage1=valMessage1+“\n”;
}
返回valMessage1;
}
$(“#btnpoppupsave”)。单击(函数(){
如果(SetValidate()!=“”){
警报(SetValidate());
}
否则{
$('popupEventForm').hide();
var blkstr=“”;
$.each($(“#whoRequired”).val(),函数(idx2,val2){
blkstr=val2+“,”+blkstr;
});
var=”;
if($('chkReminder').prop('checked')){
提醒=正确;
}否则{
提醒=错误;
}
var数据行={
“MeetingId”:$(“#MeetingId”).val(),
“Title”:$(“#eventTitle”).val(),
“NewEventTime”:$(“#eventTime”).val(),
“WhoRequired”:blkstr,
“description”:$(“#txtdescription”).val(),
“状态”:$(“#状态”).val(),
“NewEventDate”:$(“#eventDate”).val(),
“Remider”:提醒,
“NewEventDuration”:$(“#eventDuration”).val(),
'Notes':$('#txtnotes').val(),
}
ClearPopupFormValues();
$.ajax({
键入:“POST”,
url:“/Calendar/SaveEvent”,
数据:dataRow,
成功:功能(响应){
如果(响应='True'){
$(“#日历”).fullCalendar('refetchEvents');
警报(“已保存新事件!”);
}
否则{
警报('错误,无法保存事件!');
}
}
});
}
});
var sourceFullView={url:'/Calender/GetDiaryEvents/'};
var sourceSummaryView={url:'/Calender/GetDiarySummary/'};
var CalLoading=true;
$(“#日历”).fullCalendar({
标题:{
左:“上一个,下一个今天”,
中心:'标题',
右图:“月,agendaWeek,agendaDay”
},
defaultView:'agendaDay',
是的,
全天时段:错,
是的,
慢分钟:15,
事件:'/Calendar/GetDiaryEvents/',
eventClick:函数(calEvent、jsEvent、view){
ShowEventDetails(calEvent.id);
//警报(JSON.stringify(calEvent));
//警报('您单击了事件id:'+calEvent.id
//+“\n特殊ID:”+calEvent.someKey
//+“\n标题为:“+calEvent.title”;
},
eventDrop:函数(事件、日增量、分钟增量、全天、回复函数){
如果(确认(“确认移动?”){
UpdateEvent(event.id,event.start);
}
否则{
revertFunc();
}
},
eventResize:函数(事件、日增量、分钟增量、回复函数){
如果(确认(“确认更改预约时间?”){
UpdateEvent(event.id、event.start、event.end);
}
否则{
revertFunc();
}
},
dayClick:函数(日期、全天、jsEvent、视图){
$('#eventTitle').val(“”);
$('eventDate').val($.fullCalendar.formatDate(日期,'dd/MM/yyyy'));
$('#eventTime').val($.fullCalendar.formatDate(date,'HH:mm'));
ShowEventPopup(日期);
},
viewRender:函数(视图、元素){
如果(!调用){
如果(view.name='month'){
$('#calendar').fullCalendar('removeEventSource',sourceFullView);
$(“#calendar”).fullCalendar('removeEvents');
$(“#日历”).fullCalendar('addEventSource',sourceSummaryView);
}
否则{