addvaluechangedHandler在gwt中触发两次。我应该使用哪种替代方法?

时间:2012-04-17 07:59:18

标签: gwt date

我正在使用以下代码。 但是addvaluechangedHandler在gwt中发射两次。 我应该使用什么其他方法,以便它只会出现一次?

calendar.addValueChangeHandler(new ValueChangeHandler<Date>() {  
    @Override
    public void onValueChange(ValueChangeEvent<Date> event) {

        Date newDate = calendar.getValue();
        newDate.setDate(newDate.getDate()+1);       
        if ((newDate.before(todaysDate))) {
            Window.alert("You can not choose past dates before " +todaysDate);
            calendar.setValue(null);
        }
    }
});

1 个答案:

答案 0 :(得分:1)

请参阅http://code.google.com/p/google-web-toolkit/issues/detail?id=4785

解决方法似乎是:

public class DateBoxOneEvent extends DateBox {
  @Override
  public void setValue(Date date, boolean fireEvents) {
    if (date != null) {
      date.setHours(0);
      date.setMinutes(0);
      date.setSeconds(0);
    }
    super.setValue(date, fireEvents);
  }
}