Primefaces p:schedule不正确地显示计划中具有相同开始和结束日期时间的事件
我在日程表中创建了两个事件(PrimeFaces日程表演示) 对于事件“1”,使用参数创建Primefaces p:schedule不正确地显示计划中具有相同开始和结束日期时间的事件,primefaces,fullcalendar,Primefaces,Fullcalendar,我在日程表中创建了两个事件(PrimeFaces日程表演示) 对于事件“1”,使用参数创建 From: 08/02/2016 06:00 To: 08/02/2016 06:00 及活动“2” 为什么在计划事件“1”中显示多于“2”?我怎么能修好它 谢谢我想您并没有对其进行一些调试和小实验。首先,只有持续时间为0的事件才会发生,在响应中不少于“一小时”(更正标题),您将看到,当您创建持续时间为0(零)的事件时,会正确报告开始日期时间和结束日期时间 因此,将此0持续时间事件显示为2小时事
From: 08/02/2016 06:00 To: 08/02/2016 06:00
及活动“2”
为什么在计划事件“1”中显示多于“2”?我怎么能修好它
谢谢我想您并没有对其进行一些调试和小实验。首先,只有持续时间为0的事件才会发生,在响应中不少于“一小时”(更正标题),您将看到,当您创建持续时间为0(零)的事件时,会正确报告开始日期时间和结束日期时间
因此,将此0持续时间事件显示为2小时事件的是客户端。很容易发现这个“客户端”实际上是jquery fullCalendar,只需稍加搜索,就可以发现它有默认值,其中包括:
defaultTimedEventDuration:“02:00:00”
问题很清楚。因此,由于显示0持续时间事件是“胡说八道”,它假定没有结束日期,默认值生效(我没有调试到PrimeFaces使用的fullCalendar.js文件中),因此它明显地转换为两小时事件。这就是为什么的答案
关于“如何解决”的答案不能完全回答,因为你没有说明你预期的行为是什么
最简单的解决方案:
- 防止用户添加这样的事件
- 将默认值设置为填充模型时所需的值(提交时间或渲染时间)
extender
的属性,定义如下
扩展底层fullcalendar插件选项的javascript函数名称
因此,将extender=“scheduleExt()
添加到计划中
创建相应的javascript函数并正确填充(这是一个示例,我没有测试它,请尝试)
函数scheduleExt(){
//this=调度小部件实例
//this.cfg=选项
this.cfg.defaultTimedEventDuration:“02:00:00”
};
}
我假设您没有对进行一些调试和小实验。首先,只有持续时间为0的事件才会发生,在响应中不少于“一小时”(更正标题),当您创建0(零)时,您会看到持续时间事件,正确报告开始日期时间和结束日期时间
因此,是客户端将此0持续时间事件显示为2小时事件。很容易发现此“客户端”实际上是jquery fullCalendar,只需稍加搜索,您就可以发现它有默认值,其中包括:
defaultTimedEventDuration:“02:00:00”
原因很清楚。因此,由于显示0持续时间事件是“胡说八道”,它假定没有结束日期,默认值生效(我没有调试到PrimeFaces使用的fullCalendar.js文件中),因此,明显地转换为两小时事件。这就是为什么的答案
关于“如何解决”的答案不能完全回答,因为你没有说明你预期的行为是什么
最简单的解决方案:
- 防止用户添加这样的事件
- 将默认值设置为填充模型时所需的值(提交时间或渲染时间)
extender
的属性,其定义如下
扩展底层fullcalendar插件选项的javascript函数名称
因此,将extender=“scheduleExt()
添加到计划中
创建相应的javascript函数并正确填充(这是一个示例,我没有测试它,请尝试)
函数scheduleExt(){
//this=调度小部件实例
//this.cfg=选项
this.cfg.defaultTimedEventDuration:“02:00:00”
};
}
如果@Kukeltje解决方案无效,则在primefaces.jar中进行更改
primefaces /src/main/resources/META-INF/resources/primefaces/schedule/schedule.js
查找defaultTimedEventDuration:“02:00:00”
,然后根据需要修改默认的持续时间。这对我来说非常有效
注意:@Kukeltje解决方案不适用于我,因此我在Primefaces 6.0 jar上实现了这一点如果@Kukeltje解决方案不适用,则在Primefaces.jar中进行更改
primefaces /src/main/resources/META-INF/resources/primefaces/schedule/schedule.js
查找defaultTimedEventDuration:“02:00:00”
,然后根据需要修改默认的持续时间。这对我来说非常有效
注意:@Kukeltje解决方案不适合我,所以我在Primefaces 6.0 jar上实现了这一点谢谢您的回答!但是,我没有写“少于一个小时”),我理解这个事件是正确创建的,但我搞不懂它为什么会这样显示。你的回答对我帮助很大。谢谢“一小时内结束”读起来就像一小时内结束一样。否则它肯定是不正确的,因为它在0小时内结束。。。所有这些都可以通过“调试”、查看源代码等轻松发现。感谢您的回答!但是,我没有写“少于一个小时”),我理解这个事件是正确创建的,但我搞不懂它为什么会这样显示。你的回答对我帮助很大。谢谢“一小时内结束”读起来就像一小时内结束一样。否则它将被定义