【问题标题】:Get value from bootstrap gwt java datetimepicker从引导 gwt java datetimepicker 获取值
【发布时间】:2018-01-19 21:18:18
【问题描述】:

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

}

【问题讨论】:

    标签: java twitter-bootstrap gwt gwt-bootstrap


    【解决方案1】:

    注意:

    【讨论】:

    • 我注意到在每个示例中我都发现了 DateTimePicker 它在 onModuleLoad() 方法中使用,例如gwtproject.org/javadoc/latest/com/google/gwt/user/datepicker/… 但是如果我不在 onModuleLoad() 方法中,我该如何使用它?这个,我没找到。
    • 好吧,我尝试使用 DateBox 而不是 DateTimePicker,它似乎可以工作......并且没有添加任何事件处理程序。我真的不知道为什么。但是日期框只选择日期......我还需要小时:(
    • 有一个DateTimeBox
    【解决方案2】:

    onValueChange 应该包含接收到的ValueChangeHandler 中的值。

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

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

    PS:请查看 GWT-Bootstrap 的展示以获取工作示例:

    【讨论】:

    • 非常感谢 Carlos,我刚刚编辑了我的消息,添加了完整的代码......“onValueChange 应该在收到的 ValueChangeHandler 中包含值”是什么意思?
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多