【问题标题】:GWT Calendar or Datepicker to display seasons in a yearGWT Calendar 或 Datepicker 显示一年中的季节
【发布时间】:2012-05-22 18:12:43
【问题描述】:

我正在尝试找到显示一年中日期范围的最佳组件。 一个想法是将月份显示为盒子(12 个盒子),并用不同的颜色绘制季节。

GWT Datepicker 并不能真正满足我的需要,因为它的可扩展性不够 (http://code.google.com/p/google-web-toolkit/issues/detail?id=3848)。日历组件太复杂了。 GXT 日期选择器也缺乏可扩展性。

这是我想要实现的示例:

有什么想法吗?我使用 GXT 作为库。

【问题讨论】:

    标签: gwt extjs calendar datepicker gxt


    【解决方案1】:

    在我看来,使用 DatePicker 并不是一个坏主意。这是一个涵盖一个月的小示例。我认为将其中的 12 个放在一个网格中,将其延长到一整年并不难:

    Java

    final DateTimeFormat format = DateTimeFormat.getFormat("yyyy-MM-dd");
    
    final DatePicker datePicker = new DatePicker();
    datePicker.setCurrentMonth(format.parse("2012-01-01"));
    datePicker.addStyleName("my-cal");
    
    final Date start = format.parse("2012-01-17");
    final Date end = format.parse("2012-01-28");
    
    for (final Date date = start; date.compareTo(end) <= 0; CalendarUtil
        .addDaysToDate(date, 1)) {
    
      datePicker.addStyleToDates("my-green", date);
    }
    

    CSS

    .my-green { background-color: green !important; }
    .my-cal .datePickerPreviousButton { visibility: hidden; }
    .my-cal .datePickerNextButton { visibility: hidden; }
    

    使用“干净”的主题,它看起来像这样:


    P。 S. 完整的日历如下所示:

    完整代码:

    http://pastebin.com/xkrRQQht

    【讨论】:

    • 您好,我已经尝试过此解决方案,但无法删除填充日期。您可以隐藏它们,但当您单击它们时,日历仍然会切换月份。无法覆盖此行为,因为该类是最终类,并且复制粘贴该类也不是解决方案,因为它使用了包私有类。见票:code.google.com/p/google-web-toolkit/issues/detail?id=3848
    • @Jordi:你是如何隐藏它们的?我正在使用.datePickerDayIsFiller {visibility: hidden;},这使它们无法点击(在开发模式下的 chrome 上测试,GWT 2.4.0)。
    • 此外,您可以在 DatePicker 或 CalendarModel(不是最终版本)中覆盖 setCurrentMonth(),一旦您设置了它,它们就不允许更改当前月份。
    • 我使用了您提出的解决方案并且工作顺利。这是我使用的代码:pastebin.com/PMfXdZEk
    • 太棒了。感谢分享结果!
    猜你喜欢
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多