猿问

设置 DateTimeItem 的范围限制

我特别需要的是防止用户输入将来的日期/时间。这与禁用特定日期不同,因为我需要禁用某个日期的所有日期部分。

理想情况下,应该禁用任何未来的日期。目前,我只是在用户输入无效时间时阻止表单提交,但禁用不需要的日期会更好。

我浏览了javadoc,一无所获。可能吗?如何?


森栏
浏览 95回答 1
1回答

牧羊人nacy

配置范围仅意味着禁用此范围之外的日期。所以这个过程与链接答案中的过程相同。您可以创建一个实用方法来更轻松地创建过滤器。例如,如果谓词返回 false,则configureShowRangeHandler承认Predicate<Date>将禁用日期。这enableUntilToday是一个将可选日期限制到今天的简单示例。{&nbsp; &nbsp; DatePicker dp = new DatePicker();&nbsp; &nbsp; Predicate<Date> enableUntilTodayDates = d -> !d.after(new Date());&nbsp; &nbsp; configureShowRangeHandler(dp, enableUntilTodayDates);}static HandlerRegistration configureShowRangeHandler(DatePicker dp, Predicate<Date> fn) {&nbsp; &nbsp; return dp.addShowRangeHandler(ev -> {&nbsp; &nbsp; &nbsp; &nbsp; for (Date t = copyDate(ev.getStart()); t.before(ev.getEnd()); addDaysToDate(t, 1)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dp.setTransientEnabledOnDates(fn.test(t), t);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; });}copyDate并且addDaysToDate是从静态导入的CalendarUtil
随时随地看视频慕课网APP

相关分类

Java
我要回答