Java GWT日期框-禁用特定日期
我想禁用“我的日期”框中的特定日期。我用这段代码试过了,但是指定的日期(当前日期)没有被禁用Java GWT日期框-禁用特定日期,java,gwt,datepicker,Java,Gwt,Datepicker,我想禁用“我的日期”框中的特定日期。我用这段代码试过了,但是指定的日期(当前日期)没有被禁用 final DateBox dateBox = new DateBox(); dateBox.getDatePicker().addShowRangeHandler(new ShowRangeHandler<Date>() { @Override public void onShowRange(final ShowRangeEvent<Date> event)
final DateBox dateBox = new DateBox();
dateBox.getDatePicker().addShowRangeHandler(new ShowRangeHandler<Date>() {
@Override
public void onShowRange(final ShowRangeEvent<Date> event) {
List<Date> disabledDates = new ArrayList<Date>();
disabledDates.add(new Date());
dateBox.getDatePicker().setTransientEnabledOnDates(false, disabledDates);
}
});
final DateBox DateBox=new DateBox();
dateBox.getDatePicker().addShowRangeHandler(新的ShowRangeHandler()){
@凌驾
在ShowRange上公开作废(最终ShowRange事件){
List disabledDates=new ArrayList();
添加(新日期());
dateBox.getDatePicker().SetTransientEnabledDates(false,disabledDates);
}
});
还有别的办法吗
编辑:以apanizo为例,第29.5天看起来是灰色的,但仍然可以点击
非常抱歉,我没有测试上一个答案的代码 我刚刚试过,你的代码对我有效,我做的唯一一件事就是通过
setTransientEnabledOnDates(false,dateToDisable)传递我不想要的所有日期代码>方法
例如:
public void onModuleLoad() {
final DateBox dateBox = new DateBox();
dateBox.getDatePicker().addShowRangeHandler(new ShowRangeHandler<Date>() {
@Override
public void onShowRange(final ShowRangeEvent<Date> dateShowRangeEvent) {
final Date today = new Date(); //30 May 3014
final Date yesterday = new Date(today.getTime()- 24*60*60*1000);
//disabling yesterday - 29 May of 2014
dateBox.getDatePicker().setTransientEnabledOnDates(false, yesterday);
}
});
RootPanel.get().add(dateBox);
}
在中,只需在日期选择器上添加一个值已更改的侦听器,以侦听日期中的任何更改
例如,如果不允许当前日期,并且选择了该日期,则只需放弃更改并恢复到以前的日期,或者根据需要显示警告消息,并为当前日期添加样式以将其视为禁用
final DateBox dateBox = new DateBox();
dateBox.getDatePicker().addShowRangeHandler(new ShowRangeHandler<Date>() {
@Override
public void onShowRange(final ShowRangeEvent<Date> event) {
List<Date> disabledDates = new ArrayList<Date>();
disabledDates.add(new Date());
dateBox.getDatePicker().setTransientEnabledOnDates(false, disabledDates);
}
});
此处日期时间格式仅用于检查日期,检查日期时时间被丢弃
示例代码:
private Date prevDate;
...
final DateBox dateBox = new DateBox();
final DateTimeFormat dateTimeFormat=DateTimeFormat.getFormat("MM/dd/yyyy");
dateBox.getDatePicker().addValueChangeHandler(new ValueChangeHandler<Date>() {
@Override
public void onValueChange(ValueChangeEvent<Date> event) {
if (dateTimeFormat.format(event.getValue()).equals(dateTimeFormat.format(new Date()))) {
dateBox.setValue(prevDate);
// show warning message here
}else{
prevDate=event.getValue();
}
}
});
private-Date-prevDate;
...
最终日期框DateBox=新日期框();
final DateTimeFormat DateTimeFormat=DateTimeFormat.getFormat(“MM/dd/yyyy”);
dateBox.getDatePicker().addValueChangeHandler(新的ValueChangeHandler()){
@凌驾
ValueChange上的公共作废(ValueChangeEvent事件){
if(dateTimeFormat.format(event.getValue()).equals(dateTimeFormat.format(new Date())){
dateBox.setValue(prevDate);
//在此处显示警告消息
}否则{
prevDate=event.getValue();
}
}
});
似乎没什么区别嗨,简,刚刚更新了我的答案:)