如何在ZK日历中禁用过去的日子?

问题描述 投票:0回答:1

我正在使用ZK CE-9.0.0和zk-calendar-2.1.5 source code

当前所有日期都在日历中启用。

我需要从所有视图(日/周/月)中禁用过去的几天(灰色且没有点击事件),但无法找到任何直接可用的此类功能。

有人可以帮我吗?

谢谢,

RAS

zk zk-calendar
1个回答
0
投票

我不认为有这样的功能。

一种解决方法是禁用过去几天的事件点击并更改颜色。

1。在您的控制器中捕获点击:

@Wire("#course-calendar")
private Calendars courseCalendar;

@Listen("onEventCreate = #course-calendar")
public void clickCreateEvent(CalendarsEvent event) {
    if (event.getBeginDate().before(new Date())) {
        // disable click if event is before now
    } else {
        //do something on event create
    }
}

@Listen("onEventEdit = #course-calendar")
public void clickEditEvent(CalendarsEvent event) {
    if (event.getBeginDate().before(new Date())) {
        // disable click if event is before now
    } else {
        // do something on event edit
    }
}
  1. 创建事件时出现灰色事件:
for (MyEvent me : myManager.getEvents()) {
    final SimpleCalendarEvent simpleCalendarEvent = new SimpleCalendarEvent();

    // set grey color event before now
    if (me.startDate < new Date()) {
        simpleCalendarEvent.setContentColor("#aaaaaa");
        simpleCalendarEvent.setHeaderColor("#aaaaaa");
        simpleCalendarEvent.setLocked(true);
    } else {
        simpleCalendarEvent.setContentColor("#4363d8");
        simpleCalendarEvent.setHeaderColor("#4363d8");
        simpleCalendarEvent.setLocked(false);
    }

    simpleCalendarEvent.setContent(me.getContent());
    simpleCalendarEvent.setBeginDate(me.startDate);
    simpleCalendarEvent.setEndDate(me.endDate);
    simpleCalendarEvent.setTitle(me.getTitle());

    getSimpleCalendarModel().add(simpleCalendarEvent);
}
© www.soinside.com 2019 - 2024. All rights reserved.