我有很多活动都是全天活动,而且都是在同一时间开始的.我按照我希望它们出现在完整日历视图中的顺序创建事件,但它们似乎总是以其他方式排序.
如何按字母或按ID排序事件?
编辑:添加示例数据数组.在日历中,我预计Supervisor事件将每天首先出现,按照字母顺序出现在Tech1和Tech2之前,其id是出租人数,也是以下事件.相反,我每天都会收到随机订单.
例如:
2011-11-05的一天,该订单显示为Tech2,Tech1,Tech2,Supervisor.
2011-11-06的一天,该订单显示为Supervisor,Tech2.
我要求排序至少每天都是一致的,理想情况是按标题的字母顺序排列,或者按照id的顺序排列.
var events=[ {id:1,title:'Supervisor',start:'2011-11-05T00:00:00-05:00',st_hours:10,ot_hours:0,allDay:true},{id:2,title:'Tech2',{id:3,{id:4,title:'Tech1',{id:5,{id:6,{id:7,start:'2011-11-06T00:00:00-05:00',{id:8,{id:9,{id:10,{id:11,{id:12,allDay:true} ];
EDIT2:此问题似乎只存在于Google Chrome中.事件按照我期望的顺序呈现在IE9和FF8中.我开发的Chrome 15似乎是唯一受影响的浏览器.
铬
火狐
解决方法
我发现chrome尊重开始时间.在构建事件时,我只需在列表中的每个项目中添加第二个.在示例中,我有一个结果集,其中包含列中特定日期的每个值. Start位于第0列,title位于结果集的第1列.
在我的示例中,我执行以下操作:
var startVal = ""; $.each(data.ResultSet,function(row) title = data.ResultSet[row][1]; startVal = new Date(data.ResultSet[row][0]); startVal.setSeconds(startVal.getSeconds() + row); start: startVal;
…
在您的数据示例中,我将进行以下更改:
var events=[ {id:1,start:'2011-11-05T00:00:01-05:00',start:'2011-11-05T00:00:02-05:00',start:'2011-11-05T00:00:03-05:00',start:'2011-11-05T00:00:04-05:00',start:'2011-11-05T00:00:05-05:00',start:'2011-11-05T00:00:06-05:00',start:'2011-11-06T00:00:07-05:00',start:'2011-11-06T00:00:08-05:00',start:'2011-11-06T00:00:09-05:00',start:'2011-11-06T00:00:10-05:00',start:'2011-11-06T00:00:11-05:00',start:'2011-11-06T00:00:12-05:00',allDay:true}];
希望这可以帮助!
肯