要点:
如何在导航到其他日期,周,月等时检索调度程序视图的开始和结束日期
详情:
导航到当前所选视图中的新日期范围时,出于此帖子的目的,视图按月显示,我想获取“下一个”视图的开始日期和结束日期。我想导航到一个新视图,以便仅在该日期范围内触发向服务器请求数据的请求。我们已经在前端有一个完全开发的CRUD,list,search api,我们用它来插入现有的Ui组件,我想用它。之前已经问过这个问题,但我找不到答案。所有答案都需要将调度程序与“传输”紧密耦合。
我过去曾使用过Arshaw和dhtmlx日历,除非他们最近改变了api,这是一项简单的任务。
对于Kendo ui Scheduler 在导航到下一个“视图”之前调用“导航”事件(虽然我有一个我可以在这里使用的工作,但根本不优雅)。
“dataBinding”事件过于频繁地被调用:点击,拖动等等(再一次,我可以围绕她做一个工作,但又一次,不优雅)。
其他人有同样的问题:
http://www.telerik.com/forums/start-end-date-of-month-view
......但Telerik的回复是:
http://www.telerik.com/support/code-library/kendoui-scheduler-server-filtering
http://www.telerik.com/support/code-library/server-filtering
http://www.telerik.com/forums/get-scheduler-view-startdate-and-enddate-in-navigate-event
...但我不希望小部件与数据检索有任何关系,我想检测事件“navigateOnArrival”,“viewReady”,“viewRendered”或其他东西,然后让我们的数据服务处理检索,否则我正在将调度程序绑定到我们的api。
我很自信我错过了一些简单的事情 在此先感谢,欢迎所有评论。
答案 0 :(得分:2)
对于任何有兴趣的人,我都是一种方式,而Telerik也提供了答案。
我想出的方法,挂钩到“dataBinding”事件,根据你的选择:
yourSched.schedulerOptions = {
views: ["timeline"],
dataSource, yourSource,
dataBinding: function(e){
var vw = yourSched.view();
var startDate = vw.startDate();
var endDate = vw.endDate();
if(e.action==="rebind"){ // <<<-------- This gets called once as nav to diff view or date range.
// Now you can retrieve from server
myService.getDataFromServer(startDate, endDate)
.then(function(response){
///load etc.
});
}
}
}
Telerik还提供了一个答案: http://www.telerik.com/forums/scheduler-datasource-refresh-based-on-navigate-date-range#VqcirkrQX0-UK66dHTA0ig