在 Apache Wicket 的 DateField 中单击日期后立即转发到其他页面
Immediately forward to other page after a date is clicked in DateField in Apache Wicket
如主题 - 在 Apache Wicket 的 DateField 中单击日期后,我想转发到其他页面(类似 setResponsePage 的按钮可与按钮一起使用)。
有什么办法可以实现吗?这是我的日期字段:
final DateField datePublishDateFrom = new DateField("publishDateFromInput", new Model<Date>(Const.DATE)) {
@Override
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
return DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
}
};
add(datePublishDateFrom);
请阅读 DateTimeField 的 javadoc:它包含一些关于如何使用 AjaxFormComponentUpdatingBehavior 对组件进行 ajax 化的提示。
在#onUpdate() 中,您可以使用#setResponsePage()。
找到解决方案,类似于@svenmeier 的建议。添加行为效果很好
final DateField datePublishDateFrom = new DateField("publishDateFromInput", new Model<Date>(Const.DATE)) {
@Override
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
DateTextField dateInput = DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
dateInput.add(createAjax());
return dateInput;
}
};
private AjaxFormComponentUpdatingBehavior createAjax() {
return new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
setResponsePage(BasePage.class);
}
};
}
如主题 - 在 Apache Wicket 的 DateField 中单击日期后,我想转发到其他页面(类似 setResponsePage 的按钮可与按钮一起使用)。
有什么办法可以实现吗?这是我的日期字段:
final DateField datePublishDateFrom = new DateField("publishDateFromInput", new Model<Date>(Const.DATE)) {
@Override
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
return DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
}
};
add(datePublishDateFrom);
请阅读 DateTimeField 的 javadoc:它包含一些关于如何使用 AjaxFormComponentUpdatingBehavior 对组件进行 ajax 化的提示。
在#onUpdate() 中,您可以使用#setResponsePage()。
找到解决方案,类似于@svenmeier 的建议。添加行为效果很好
final DateField datePublishDateFrom = new DateField("publishDateFromInput", new Model<Date>(Const.DATE)) {
@Override
protected DateTextField newDateTextField(String id, PropertyModel dateFieldModel) {
DateTextField dateInput = DateTextField.forDatePattern(id, dateFieldModel, "yyyy-MM-dd");
dateInput.add(createAjax());
return dateInput;
}
};
private AjaxFormComponentUpdatingBehavior createAjax() {
return new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
setResponsePage(BasePage.class);
}
};
}