0

私は次のコードを使用しています。しかしaddvaluechangedHandler、gwtで2回起動します。一度だけ発生するように、他にどのような方法を使用する必要がありますか?

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 に答える