如何在DateField上定义禁用日期?

时间:2014-09-24 06:09:48

标签: vaadin vaadin7

  

方案

     
     

我有一个DateField用户可以搜索旧的拍卖信息。但旧的拍卖信息只能搜索到昨天。因此,我的DateField组件会将昨天的日期显示为默认值。这些日期是从今天开始的,后来在我的约会地点应该是不可选择的。

为了满足上述条件,我设置了 setRangeEnd() ,如下所示

    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DATE, -1);
    Date yesterday = new Date(calendar.getTimeInMillis());
    PopupDateField auctionDate = new PopupDateField("Auction Date", yesterday);
    auctionDate.setStyleName("auctiondatebox");
    auctionDate.setDateFormat("dd/MM/yyyy");
    auctionDate.setRangeEnd(yesterday);

我将外部天数的颜色设置为红色。

  .v-datefield-calendarpanel-day-outside-range {
    color:red !important;
  }

那很好,但我还有另一个条件。每个周日,拍卖 OFF 。因此,用户不应该在我的日期字段中选择这些关闭日期(每个星期日应该无法选择并将颜色显示为红色)
请有人给我建议如何在DateField中定义不可选择的日期。谢谢!

1 个答案:

答案 0 :(得分:2)

尝试使用css。 如果星期天是最后一栏:

.v-datefield-calendarpanel-body  tr>td:last-child{
   pointer-events: none;
   color: red;
}

如果星期日列是第一列(在vaadin datefield第一列中隐藏,因此星期日列是第二列):

.v-datefield-calendarpanel-body  tr>td:first-child + td{
   pointer-events: none;
   color: red;
}