Всем, привет.
Собственно проблемы 2:
во-первых, при закрытии диалогового окна вызывается апдейт таблицы и в ней пропадают поля для фильтрации. Это мой касяк или баг фреймворка? Можно ли обойти как-нить?
во-вторых, никак не могу разобраться с тем как управлять видимостью компонентов на странице. При открытии диалогового окна мне надо обображать в нем определенный набор кнопок(для добавления или для редактирования). Предполагал сделать так - если юзер в бине есть то редактирование, нет - добавление. Юзер сетается в бин через ajax при клике на строке таблицы. Свойство rendered насколько я понял в данном случае не подходит. Пока на ум приходит только управление видимостью div-ов содержащих эти кнопки через js, но мне кажется что должен быть более простой подход для этих целей средствами самого фреймворке.
Код | <ui:define name="body"> <h:form> <p:panel> <p:dataTable width="100%" id="userListTable" styleClass="yui-skin-sam" var="user" value="#{adminBean.users}" paginator="true" paginatorPosition="bottom" rows="10" selectionMode="single" selection="#{adminBean.processedUser}" dynamic="true" update="display" onselectComplete="userDialog.show()">
<p:column filterBy="#{user.login}" resizable="true"> <f:facet name="header"> <h:outputText value="#{i18n['pages.user_list.login']}" /> </f:facet> <h:outputText value="#{user.login}" /> </p:column> <p:column filterBy="#{user.lastName}" resizable="true"> <f:facet name="header"> <h:outputText value="#{i18n['pages.user_list.lastName']}" /> </f:facet> <h:outputText value="#{user.lastName}" /> </p:column> </p:dataTable> <p:commandButton value="Add New User" onclick="userDialog.show()"/> </p:panel>
<p:dialog header="User Details" widgetVar="userDialog" modal="true" fixedCenter="true" draggable="false" width="300px" close="false">
<h:panelGrid id="display" columns="2"> <h:outputText value="#{i18n['pages.user_list.login']}:" /> <h:inputText value="#{adminBean.processedUser.login}" style="font-weight:bold" />
<h:outputText value="#{i18n['pages.user_list.lastName']}:" /> <h:inputText value="#{adminBean.processedUser.lastName}" style="font-weight:bold" /> </h:panelGrid> <div id="addUserButtonsBlock" align="right"> <p:commandButton type="image" action="#{adminBean.doAddUser}" image="/i/add.gif" update="userListTable, display" oncomplete="userDialog.hide()"/> <p:commandButton type="image" action="#{adminBean.doCancelEditUser}" image="/i/cancel.png" update="userListTable, display" oncomplete="userDialog.hide()"/> </div> <div id="editUserButtonsBlock" align="right"> <p:commandButton type="image" action="#{adminBean.doUpdateUser}" image="/i/passed.gif" update="userListTable, display" oncomplete="userDialog.hide()"/> <p:commandButton type="image" action="#{adminBean.doDeleteUser}" image="/i/delete.png" update="userListTable, display" oncomplete="userDialog.hide()"/> <p:commandButton type="image" action="#{adminBean.doCancelEditUser}" image="/i/cancel.png" update="userListTable, display" oncomplete="userDialog.hide()"/> </div> </p:dialog> </h:form> </ui:define>
|
Спасибо. |