Вызов диалогового p:dialog окна и обновление данных для PrimeFaces и Spring Web Flow
Вызов метода PF(‘someDialog’).show(); и предварительное обновление компонента для связки Spring Web Flow и Primefaces
Технологии
Spring Web Flow 2.4.1
PrimeFaces 5.2.RC1
1. Задача
Необходимо вызвать диалоговое окно p:dialog с таблицей Primefaces p:dataTable, но предварительно обновить в ней данные. Все действия выполняются внутри Spring Web Flow.
2. Описание представлений
Диалоговое окно
1 2 3 4 5 6 7 8 9 10 11 12 |
<p:fragment autoUpdate="true"> <p:dialog id="splitDialog" header="#{msg['docList_reserves_splitDialog']}" widgetVar="splitDialog" width="800"> <p:dataTable id="reservesSplitDataTable" var="goods" value="#{reservesDocListBean.getGoodsForDialog()}" rowKey="#{goods.uid}}" selection="#{reservesDocListBean.selectedGoods}" emptyMessage="Нет документов"> </p:dataTable> <p:commandButton id="confirm" value="Выбрать" ajax="true" disabled="#{false}" styleClass="submitBtn"/> <p:commandButton id="decline" value="Отмена" ajax="true" oncomplete="PF('splitDialog').hide()" styleClass="submitBtn"/> </p:dialog> </p:fragment> |
Кнопкой вызова диалогового окна
1 2 3 |
<p:commandButton value=" " action="showSplitDialog" oncomplete="PF('splitDialog').show();" title="#{msg['toolbar_reserveDocList_split']}" styleClass="toolbarButtons" style="background-image: url('/resources/images/splitDocuments.png') !important"/> |
Описание потока flow.xml
1 2 3 4 5 6 |
<view-state id="documents" view="../views/documents.xhtml"> <transition on="showSplitDialog"> <evaluate expression="reservesDocListBean.getGoodsForDialog()"/> <render fragments="dialogs:splitDialog"/> </transition> </view-state> |
3. Последовательность действий
- Сначала выполнится action и действие будет обработано в описании потока. Т.е. сначала выполнится метод, указанный в transition.
- Атрибут render fragments=’ ‘ обновит диалоговое окно. Без этого атрибута и элемента p:fragment таблица будет отображаться с старыми данными.
- В методе oncomplete кнопки по имени widgetVar будет вызвано диалоговое окно с уже обновленными данными в таблице.
Замечания
У кнопки не нужно задавать атрибуты type=’button’, не нужно прописывать ajax=’false’ или immediate=’true’. Тип button — выключит ajax запросы и кнопка будет выполнять только указанный javascript код внутри ближайшей формы.
1 |
<p:commandButton type="button" value="Alert" onclick="alert(‘Prime’)" /> |
6651 Total Views 1 Views Today
One thought on “Вызов диалогового p:dialog окна и обновление данных для PrimeFaces и Spring Web Flow”
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
Диалоговое окно для установки параметров листа и способа печати содержимого графического окна — функция pagesetupdlg