我正在尝试在我的 gwt java web 应用程序中使用 bootstrap3 datetimepicker,但我不确定我是否一切正常,因为它似乎没有传递该字段的值。这是我的代码:
datePicker = new DateTimePicker();
datePicker.setFormat("dd MM yyyy hh ii");
datePicker.setStartDate(new Date());
datePicker.setLanguage(DateTimePickerLanguage.IT);
Date expDate= datePicker.getValue();
那是对的吗?因为它似乎没有传递任何价值。我还尝试添加一个事件处理程序,如下所示:
datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {
@Override
public void onValueChange(ValueChangeEvent<Date> event) {
Date expDate= event.getValue();
datePicker.setFormat("dd MM yyyy hh ii");
}
});
我不明白是否需要事件处理程序来捕获 datetimepicker 的值,如果是,我如何在方法 onValueChange 的范围之外使用 expDate 变量,因为我不想让它成为全局变量。谢谢。
在完整类之上(没有不必要的代码):
public class InsAst extends HTMLPanel {
private final AoLServiceAsync myAol = GWT.create(AoLService.class);
private DateTimePicker datePicker = new DateTimePicker();
private Date boxData;
public InsAst (final String cat) {
super("");
datePicker.setFormat("dd MM yyyy hh ii");
datePicker.setStartDate(new Date());
datePicker.setLanguage(DateTimePickerLanguage.IT);
Label dataLabel = new Label("Exp date: ");
dataLabel.setStyleName("control-label");
dataLabel.getElement().getStyle().setProperty("float", "left");
datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {
public void onValueChange(ValueChangeEvent<Date> event) {
boxData = event.getValue();
}
});
objPanel.add(dataLabel);
objPanel.add(datePicker);
addAstButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
String user=MenuBar.getUsername();
Date expDate= boxData;
[...other code]
}