2015-07-17 2 views
1

Я использую версию 0.7 bootsfaces, чтобы создать простую страницу, которая имеет что-то вроде следующего:bootsfaces б: CommandButton в Ui: повторить не обновляя ч: graphicImage

<h:form id="some_form"> 
    <ui:repeat id="some_elements" var="property" value="#{someBean.properties}"> 
    <b:commandButton value="ShowProp" ajax="true" actionListener="#{someBean.showProperty(property)}" update=":some_form:some_elements:graphic"/> 
    <!-- This property is true --> 
    <ui:fragment rendered="#{someOtherBean.showGraphic}"> 
     <h:graphicImage url="gen_image?id=#{property.id}" id="graphic"/> 
    </ui:fragment> 
    </ui:repeat> 
</h:form> 

Теперь, идея что при нажатии кнопки свойство обновляется, и изображение должно быть повторно сгенерировано (в этом случае - график jfreechart, но это не относится к точке.) Я протестировал это с помощью primfaces commandButton, и он отлично работает (график перерисовывается. .) Однако с bootsfaces commandButton ничего не происходит, как только вызов ajax завершается (я могу видеть вызов на стороне сервера, но график не перезагружается.) Я думаю, что все зависит от того, как он должен ссылаться на изображение в повторном блоке, но теперь уверен, что не так - кто-нибудь сталкивался с этим?

(Примечание: причина, почему я не хочу использовать primefaces в том, что она не очень хорошо интегрируется с начальной загрузкой)

+0

ОТ (не полностью) Не интегрируется хорошо в каком отношении? Ответная реакция? В противном случае это были бы элементы управления, и тогда не было никакой причины использовать PrimeFaces. И как выглядит реакция ajax? И вы работаете в режиме dev? – Kukeltje

+0

Я использую некоторые из более продвинутых функций в простых шрифтах (например, push), но сами элементы управления не вписываются в шаблон bootstrap, который я использую (например, laf), элементы управления bootsfaces вписываются в laf, но очевидно, некоторая функциональность не хватает ... – Nim

+0

Я действительно люблю ваше примечание. У меня такие же проблемы. Вы можете использовать простой JSF с ''. Он работает. – alexander

ответ

0

Я открыл ошибку на багтрекере проекта (https://github.com/TheCoder4eu/BootsFaces-OSP/issues/135).

На самом деле, почему вы ожидали, что update=":some_form:some_elements:graphic" будет работать в первую очередь? Это выражение является id, которого нет. Идентификатор: some_form:some_elements:0:graphic. Другими словами: он содержит номер строки. PrimeFaces (и Mojarra и MyFaces) распознают, что командная кнопка является частью группы UIRepeat и угадывает правильный номер строки. Но это всего лишь предположение. Очевидно, разумная догадка, потому что большую часть времени вы хотите обновить что-то, что находится рядом с командной кнопкой.

Следующая версия BootsFaces также угадает правильный номер строки :).

+0

Спасибо! Я знал, что полный путь будет иметь номер строки (я проверил полученный код с первичными и т. Д.). Я просто предположил, что bootsfaces будет делать правильные вещи здесь .. :) Обычно, когда он не работает, он * меня * кто что-то делает braindead ... – Nim

+0

Тем временем мы исправили ошибку в предстоящей версии BootsFaces 0.8.0. –

Смежные вопросы