【问题标题】:BootsFaces DateTimePicker AJAX not workingBootsFaces DateTimePicker AJAX 不工作
【发布时间】:2019-10-11 17:15:40
【问题描述】:

在 BootStrap 中通过 AJAX 调用后端 bean 似乎不适用于 DateTimePicker 组件。

如果我的代码有误,有人可以帮忙吗?

令我惊讶的是,BootStrap 的 DateTimePicker 参考页也不适用于 AJAX。在参考页面 (https://showcase.bootsfaces.net/forms/DateTimePicker.jsf)

参考代码

<b:form>
  <b:dateTimePicker value="#{test.dataToPick}" ondtchange="ajax:test.updateTestField()" process="@this" update="@next" label="Select date:" iconAwesome="bolt" />
  <b:inputText value="#{test.testField}" label="Result: " readonly="true" />
</b:form>

也不行。

这是我的代码不起作用:

<b:form>
<b:dateTimePicker value="#{listBean.editMonth}"
    readonly="false"
    allow-input-toggle="false"
    icon-position="right"
    mode="popup"
    format="MMM YYYY"
    side-by-side="false"
    show-date="true"
    show-time="false"
    show-icon="true"
    required="true"
    viewMode="months"
    locale="en"
    iconSize="xs"
    styleClass="datePicker"
    id="monthpicker"
    process="@this"
    ondtchange="ajax:listTradesBean.updateMonth()"
    onblur="ajax:listTradesBean.updateMonth()"/>
</b:form>

通常我希望调用后端代码“updateMonth()”。后端 bean 的 java 代码 sn-p 就是:

public void updateMonth() {
    System.out.println("WORKING!");     
}

使用 AJAX 调用此后端 bean 中的其他方法没有问题。

【问题讨论】:

    标签: ajax bootsfaces


    【解决方案1】:

    你是对的,Bootsfaces 展示页面中的示例不起作用。

    奇怪的是,我设法构建了一个工作示例,通过使用传统的 JSF AJAX(遗留)语法来解决您的问题:

    <b:dateTimePicker id="datePicker"
        format="DD/MM/YYYY HH:mm"
        value="#{testBB.selectedDate}"
        required="true"
        renderLabel="false"
        ajax="true"
        process="@this"
        update="@this"
        ondtchange="#{testBB.doSomething()}">
    </b:dateTimePicker>
    

    据我所知,这与“ajax:testBB.doSomething()”的工作方式相同。

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 2018-06-26
      • 1970-01-01
      • 2019-07-24
      相关资源
      最近更新 更多