查看按事件ID而不是开始时间戳排序的FullCalendar中的事件

时间:2010-12-27 11:58:31

标签: php mysql fullcalendar

我设置了日历,在查看月视图时,我想显示由ID创建的事件,而不是他们应该开始的时间。

这可能吗?如果是这样,我将如何更改代码以这种方式显示事件?

4 个答案:

答案 0 :(得分:1)

很棒的解决方案! 我已经使用它并根据我的需要进行调整。我正在使用JSON提要。

重要提示:第​​一个条件是确保所有事件按开始日期排序。

然后,如果你想按标题排序:

function segCmp(a, b) {
   var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
   if (tryCmp == 0) {
            return (a.event.title.toLowerCase() >= b.event.title.toLowerCase()) ? 1: 0;
    }
   return tryCmp;
}

我也用另一种方式。 我已经为JSON提要的每个事件添加了一个名为'colOrder'的自定义属性(它可以是任何东西)并给它整数值(1,2,3 ...)。 1代表我想看的第一个事件,2代表第二个......

然后我自定义了函数以使用colOrder属性对事件进行排序。

function segCmp(a, b) {
   var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
   if (tryCmp == 0) {
    if (!isNaN(a.event.colOrder) && !isNaN(b.event.colOrder))
            return (a.event.colOrder - b.event.colOrder);
    }
   return tryCmp;
}

答案 1 :(得分:0)

ORDER BY id ASC添加到您的查询中。

答案 2 :(得分:0)

还没有简单的方法可以做到这一点,但是当实现这个问题时,应该很容易: http://code.google.com/p/fullcalendar/issues/detail?id=364

答案 3 :(得分:0)

自上次发布以来很长时间,但万一有人需要它(像我一样):

更改fullcalendar.js

function segCmp(a, b) {
    return (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
}

function segCmp(a, b) {
   var tryCmp = (b.msLength - a.msLength) * 100 + (a.event.start - b.event.start);
   if (tryCmp == 0)
      return (a.event.id - b.event.id);
   return tryCmp;
}

它对我有用