0

我正在尝试在我的 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]

}
4

3 回答 3

1

注意:

于 2018-01-19T02:08:57.540 回答
0

终于发现问题出在这行代码:

datePicker.setFormat("dd MM yyyy hh ii");

也许这传递了与 java Date 不兼容的错误类型的值。

于 2018-01-19T13:18:18.397 回答
0

onValueChange应该在收到的值内ValueChangeHandler

您可能应该调用另一个方法来传递该日期,而不是将其作为全局变量。

如果没有更完整的代码示例,很难说得更多。

PS:查看 GWT-Bootstrap 的工作示例展示:

于 2018-01-18T23:53:28.727 回答