BootsFaces DateTimePicker AJAX не работает - PullRequest
1 голос
/ 25 мая 2019

В BootStrap вызов компонента бэкэнда через AJAX, похоже, не работает для компонента DateTimePicker.

Если я ошибаюсь с моим кодом, может кто-нибудь помочь, пожалуйста?

К моему удивлению, такжесправочная страница DateTimePicker в BootStrap не работает с 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 (). Фрагмент кода java для бэкэнда bean просто:

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

Другие методы внутри этого бэк-компонента вызываютсябез проблем используя AJAX.

1 Ответ

0 голосов
/ 18 июня 2019

Вы правы, пример на странице демонстрации 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 ()".

...