2015-12-10 5 views
1

Я использую поле даты, в котором я хочу ограничить выбор даты до 90 дней с текущей даты. Как я могу достичь этого?Отключение выбора дат в поле даты

Я попытался dateField.setMaxvalue(maxDate), но я не в состоянии ограничить выбор

+0

Я считаю, что у вас есть больше шансов получить ответ, если вы разместите код, который у вас есть. –

+0

, если это ваша ячейка ввода, чем может быть, вы можете расширить ее и переопределить метод onBrowserEvent() и isEditing(), чтобы обеспечить вашу логику, чтобы пользователь не мог ввести более 90 дней. – Brijesh

ответ

0

Я не думаю, что DatePicker GWT имеет поддержку для этого. Вы можете использовать библиотеку GWT-Bootstrap3, которая имеет все это (https://gwtbootstrap3.github.io/gwtbootstrap3-demo/#dateTimePicker).

Или вы можете прослушивать изменения событий и отката, сделанные пользователем, если выбор был вне допустимого диапазона и отображать сообщение пользователю.

+0

спасибо @knarf. это сработало!!!! –

0

Я второй, чтобы предложить @Knarf. Вы можете использовать класс GWT DatePicker и прослушивать ValueChangeEvent и в ValueChangeHandler, вы можете поместить свою логику, чтобы проверить, находится ли выбранная дата в пределах вашего диапазона - если нет, вы можете показать сообщение в своем пользовательском интерфейсе, чтобы пользователь мог повторно выбрать дату в диапазон дат (согласно вашему требованию).

DatePicker datePicker = new DatePicker(); 
    final Label text = new Label(); 

    // Listen for a ValueChangeEvent and implement a ValueChangeHandler on your datePicker element 
    datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() { 
     public void onValueChange(ValueChangeEvent<Date> valueChangeEvent) { 
     Date inputDate = valueChangeEvent.getValue(); 

     // Put your logic to test whether the selected date is within your range 
     String dateString = DateTimeFormat.getMediumDateFormat().format(inputDate); 
     text.setText(dateString); 
     } 
    }); 

Надеюсь, что это поможет!

0

Вы можете добавить ShowRangeHandler на свой datePicker. Это пример, чтобы ограничить Datepicker к датам в прошлом только, вы можете адаптировать его ограничить до 90 дней:

datePicker.addShowRangeHandler(new ShowRangeHandler<Date>() { 
     @Override 
     public void onShowRange(ShowRangeEvent<Date> event) { 
      Date today = new Date(); 
      Date date = new Date(event.getStart().getTime()); 
      while (date.before(event.getEnd())) { 
       if (date.after(today) && datePicker.isDateVisible(date)) { 
        datePicker.setTransientEnabledOnDates(false, date); 
       } 

       CalendarUtil.addDaysToDate(date, 1); 
      } 
     } 
    }); 
Смежные вопросы