0
날짜 필드 2 개와 버튼 1 개가있는 양식이 있습니다. 날짜가 유효하지 않은 경우 버튼을 비활성화하고 사용자 유형이 필드에 날짜를 입력 할 때 역동적으로 활성화해야합니다. 페이지의 단추를 어떻게 새로 고칠 수 있습니까?wicket 버튼 동적 업데이트 사용/사용 안함
아래 코드는 작동하지 않습니다. 페이지에서 요소를 새로 고치는 작업을해야한다는 것을 알고 있지만 어떻게 처리해야할지 모르겠다.
private void initFields() {
startDate = new DateTextField("startDate", "Дата начала периода", null, NSDConsts.DATE_FORMAT);
startDate.setOutputMarkupId(true);
startDate.addSubmitter();
startDate.getFormComponent().add(new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget paramAjaxRequestTarget) {
startDateValue = startDate.getDate();
exportButtonVisibility();
}
});
form.add(startDate);
endDate = new DateTextField("endDate", "Дата окончания периода", null, NSDConsts.DATE_FORMAT);
endDate.setOutputMarkupId(true);
endDate.addSubmitter();
endDate.getFormComponent().add(new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget paramAjaxRequestTarget) {
endDateValue = endDate.getDate();
exportButtonVisibility();
}
});
form.add(endDate);
exportButton = new CinimexAjaxLink("createButton", "Создать", new NRDTextLinkDecorator()) {
@Override
public void onClick(AjaxRequestTarget target) {
if (dateTextFieldCheck(startDate, endDate)) {
((ActionsAuditManager) getManagerFacade().getManager(ActionsAuditManager.BEAN_NAME)).createNote(AuditActions.CALCULATE_DETALIZATION, "Отчет успешно сформирован", null, null);
download.initiate(target);
} else {
String message = "Введена неверная дата";
if (startDate.getString().compareTo(endDate.getString()) > 0) {
message = "Дата начала периода не может быть больше даты окончания";
}
getDialogWindow().showInfo(message);
}
}
};
exportButton.add(download);
form.add(exportButton);
}
private void exportButtonVisibility() {
if (dateTextFieldCheck(startDate, endDate)) {
exportButton.setEnabled(true);
} else {
exportButton.setEnabled(false);
}
}
감사합니다. 완벽하게 작동합니다. – heyDude