按开始日期和结束日期排列Fullcalendar中的事件 [英] Order Events in Fullcalendar by Start date and End Date

查看:289
本文介绍了按开始日期和结束日期排列Fullcalendar中的事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



示例:

    $ b $

    如何在fullCalendar中按开始日期排序事件? b
  • 首先开始的事件将显示在最上面,然后稍后开始的事件将在以后显示

  • 如果两个事件的开始日期相同,则以结束日期$ b排序$ b ie
    先前会结束的事件将首先显示,然后是稍后结束的事件。


日历显示
活动订单

  var args = jQuery.parseJSON (emCalendarArgs); 
var Jobj = args.events;

//设置FullCalendar

(function(){
// var language = jQuery('#pg_lang')。val();
// alert(language +'dsfsd');
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var language = langg;
var mn_text,week_text,day_text,list_text;

// alert(mn_text);
var args = jQuery.parseJSON(emCalendarArgs);
var Jobj = args.events;
console.log(Jobj);
jQuery('#events-full-calendar')。 fullCalendar({

allDaySlot:false,
editable:true,
lang:'he',
handleWindowResize:true,
eventOrder:'start, end',
header:{
left:'today prev,next',
center:'title',
right:'month,basicWeek,basicDay'
},
buttonText:{
month:mn_text,
week:week_text,$ b $ day:day_text
},
eventLimi t:{
'month':3,//仅在几个月内调整为4
'default':false //显示其他视图的所有事件
},
axisFormat: 'HH:mm',
timeFormat:{
议程:'H:mm { - h:mm}'
},
slotEventOverlap:false,
events: Jobj,
timeFormat:'H:mm',
});
}());


解决方案

我找到了解决方案。对于其他人寻找解决方案,我改变了fullcalendar.js中的一个函数:

$ p $ lt; code> compareSegs:function(seg1, seg2){return seg1.eventStartMS - seg2.eventStartMS || //先前的事件先行seg2.eventDurationMS - seg1.eventDurationMS || //领带?更长的事件先去seg2.event.allDay - seg1.event.allDay || //领带?首先放置全天事件(布尔型转换为0/1)compareByFieldSpecs(seg1.event,seg2.event,this.view.eventOrderSpecs); }

to:

  compareSegs:function(seg1,seg2){
if(this.view.name ==basicWeek|| this.view.name ==month|| this.view.name ==basicDay){//通过ListView中的颜色排序事件
return seg2.event.allDay - seg1.event.allDay || //领带?首先放置全天活动(布尔值转换为0/1)
compareByFieldSpecs(seg1.event,seg2.event,this.view.eventOrderSpecs);
}
else {
return seg1.eventStartMS - seg2.eventStartMS || //先前的事件先行
seg2.eventDurationMS - seg1.eventDurationMS || //领带?更长的事件先行
seg2.event.allDay - seg1.event.allDay || //领带?首先放置全天活动(布尔值转换为0/1)
compareByFieldSpecs(seg1.event,seg2.event,this.view.eventOrderSpecs);


$ / code $ / pre

并在fullcalendar函数的代码中使用

  eventOrder:'start,end'

在我的fullcalendar调用中

How can I order events in fullCalendar first by start date?

Example:

  • An event which starts first will show on top and then one which starts later will be later
  • If two events have same the start date then, order them by end date i.e an event which ends earlier will be shown first, followed by an event which ends later.

Calendar Display Events Order

var args = jQuery.parseJSON(emCalendarArgs);
var Jobj = args.events;

// Setup FullCalendar

(function() {
  //var language = jQuery('#pg_lang').val();
  //alert(language+ 'dsfsd');
  var date = new Date();
  var d = date.getDate();
  var m = date.getMonth();
  var y = date.getFullYear();
  var language = langg;
  var mn_text, week_text, day_text, list_text;

  //alert(mn_text);
  var args = jQuery.parseJSON(emCalendarArgs);
  var Jobj = args.events;
  console.log(Jobj);
  jQuery('#events-full-calendar').fullCalendar({

    allDaySlot: false,
    editable: true,
    lang: 'he',
    handleWindowResize: true,
    eventOrder: 'start,end',
    header: {
      left: 'today prev,next',
      center: 'title',
      right: 'month,basicWeek,basicDay'
    },
    buttonText: {
      month: mn_text,
      week: week_text,
      day: day_text
    },
    eventLimit: {
      'month': 3, // adjust to 4 only for months
      'default': false // display all events for other views
    },
    axisFormat: 'HH:mm',
    timeFormat: {
      agenda: 'H:mm{ - h:mm}'
    },
    slotEventOverlap: false,
    events: Jobj,
    timeFormat: 'H:mm',
  });
}());

解决方案

I found a Solution to it. For any one else looking for the solution to this, I changed a function in fullcalendar.js:

compareSegs: function(seg1, seg2) { return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1) compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs); } 

to :

compareSegs: function(seg1, seg2) {
        if(this.view.name=="basicWeek" || this.view.name=="month" || this.view.name=="basicDay"){ // ordering events by color in ListView
        return seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1)
            compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs);
        }
        else{
            return seg1.eventStartMS - seg2.eventStartMS || // earlier events go first
                        seg2.eventDurationMS - seg1.eventDurationMS || // tie? longer events go first
                        seg2.event.allDay - seg1.event.allDay || // tie? put all-day events first (booleans cast to 0/1)
                        compareByFieldSpecs(seg1.event, seg2.event, this.view.eventOrderSpecs);
        }
    }

and used below code in fullcalendar function

eventOrder: 'start, end' 

in my fullcalendar call

这篇关于按开始日期和结束日期排列Fullcalendar中的事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆