禁用日期字段中的日期选择

时间:2015-12-10 09:54:12

标签: gwt gxt datefield

我正在使用日期字段,我希望将日期选择限制为从当前日期起最多90天。我怎样才能做到这一点?

我尝试dateField.setMaxvalue(maxDate),但我无法限制选择

4 个答案:

答案 0 :(得分:0)

我不认为GWT datepicker支持这一点。 您可以使用类似GWT-Bootstrap3的库,它具有所有这些(https://gwtbootstrap3.github.io/gwtbootstrap3-demo/#dateTimePicker)。

或者,如果选择超出有效范围,您可以侦听用户所做的事件和回滚更改,并向用户显示消息。

答案 1 :(得分:0)

我接受@Knarf给出的建议。您可以使用GWT DatePicker类并侦听ValueChangeEvent,在ValueChangeHandler中,您可以使用逻辑来检查所选日期是否在您的范围内 - 如果不是,您可以在UI上显示一条消息,供用户重新选择日期日期范围(根据您的要求)。

    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);
      }
    });

希望这有帮助!

答案 2 :(得分:0)

您可以在datePicker中添加ShowRangeHandler。这是一个仅将datePicker限制为过去日期的示例,您可以将其调整为限制为90天:

#include <string>

class cTest
{
    private:
        int m_i;
        std::string m_str;

    public:
        const int & i;
        const std::string & str;

    cTest(void)
    : i(m_i)
    , str(m_str)
    {}
};

int main(int argc, char *argv[])
{
    cTest o;
    int i = o.i; // works
    o.i += 5; // fails
    o.str.clear(); // fails

    return 0;
}

答案 3 :(得分:0)

上面提到的解决方案完全符合我的预期。谢谢。我在链接(https://gwtbootstrap3.github.io/gwtbootstrap3-demo/#dateTimePicker)中使用了引导日期选择器。