我正在使用日期字段,我希望将日期选择限制为从当前日期起最多90天。我怎样才能做到这一点?
我尝试dateField.setMaxvalue(maxDate)
,但我无法限制选择
答案 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)中使用了引导日期选择器。