我在使用JSF / Primefaces来显示弹出窗口时遇到问题。 作为背景,我使用JSF模板生成我的页面:
内联可以显示数据表但是当我单击按钮显示对话框时没有任何反应。我没有在日志中看到任何错误。
<h:body>
<p:dataTable id="lstUsers" var="u" value="#{userController.userList}" selectionMode="single"
selection="#{userController.selectedUser}" rowKey="#{u.login}" paginator="true" rows="10">
<p:column headerText="Username">
<h:outputLabel value="#{u.login}"></h:outputLabel>
</p:column>
<p:column headerText="Role" rowspan="2">
<h:outputLabel value="#{u.role}"></h:outputLabel>
</p:column>
<f:facet name="footer">
<p:commandButton id="bttAdd" type="button" value="Add" update=":contentView:idPanelPop" oncomplete="userDialog.show()" ></p:commandButton>
<p:commandButton id="bttEdit" value="Edit"></p:commandButton>
<p:commandButton id="bttRemove" value="Remove"></p:commandButton>
</f:facet>
</p:dataTable>
<p:dialog id='userDialog' header="User Details" widgetVar="userDialog"
resizable="false" width="200px" height="200px" showEffect="clip" hideEffect="fold">
<h:panelGrid id="idPanelPop" columns="2">
<h:outputLabel id='dOutUser' value="Username"></h:outputLabel>
<h:outputLabel id='dOutUserValue' value="#{userController.selectedUser.login}"></h:outputLabel>
<h:outputLabel id='dOutRole' value="Role"></h:outputLabel>
<h:outputLabel id='dOutRoleValue' value="#{userController.selectedUser.role}"></h:outputLabel>
</h:panelGrid>
</p:dialog>
</h:body>
以上代码用作
的一部分<ui:composition template="./maintemplate.xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:define id="contentViewIndex" name="content">
<ui:include src="#{navigationController.currentPage}"></ui:include>
</ui:define>
</ui:composition>
我的模板页面包含以下内容:
<p:layoutUnit position="center">
<h:form id="contentView">
<ui:insert name="content">
Default Content
</ui:insert>
</h:form>
</p:layoutUnit>
navigationController.current 值会根据菜单点击更改,以便在页面之间导航。 我正在关注oficial primafaces showcase PrimeFaces datatable
我目前的设置是Netbeans 7.3 RC1 / Apache 7.0.34.0 / Mojarra 2.1.13
如果有人可以指出我正确的方向来解决这个问题,我会说服的。)
编辑:考虑到内联答案后无效。 也许我应该首先检查浏览器控制台,在这种情况下它很奇怪,因为它抱怨它不能识别widgedVar。 我已经尝试将Dialog outsite放在表单中,结果是同样的错误。 :/
答案 0 :(得分:0)
您的bttAdd
按钮是普通按钮(您使用type="button"
属性明确设置)。这意味着它只是做一些JavaScript,没有任何AJAX请求。要执行AJAX请求,并更新您的面板,请删除type="button"
并尝试使用。
答案 1 :(得分:0)
我会改变两件事(首先可能不重要):
答案 2 :(得分:0)
发现问题......
经过大量的测试和挖掘,并考虑到以前的答案。问题是两件事:
第一。对角线的高度和宽度不能包含px。
第二。而按照以前的答案,它必须在外面 here解释道。
p:对话框的大小不能为px。