0

我正在使用以下代码。但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);
        }
    }
});
4

1 回答 1

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);
  }
}
于 2012-04-17T11:25:25.260 回答