是的。你可以使用jQuery UI 对话框
用法很简单。假设您有一个<h:panelGroup>
希望在对话框中显示其内容的内容,那么您可以先重新渲染它panelGroup
,然后对其调用dialog()
方法。
<h:panelGroup id="dialogContainer" styleClass='dialog'>
<p:dataTable var="car" value="#{tableBean.carsSmall}">
<p:column headerText="Model">
<h:outputText value="#{car.model}" />
</p:column>
<p:column headerText="Year">
<h:outputText value="#{car.year}" />
</p:column>
<p:column headerText="Manufacturer">
<h:outputText value="#{car.manufacturer}" />
</p:column>
<p:column headerText="Color">
<h:outputText value="#{car.color}" />
</p:column>
<p:column headerText="Color">
<p:commandButton icon="ui-icon-search" actionListener="#{tableBean.selectCarFromDialog(car)}" />
</p:column>
</p:dataTable>
</h:panelGroup>
在单击按钮时,您首先需要重新渲染dialogContent
然后调用$('.dialog').dialog();
(请阅读 API 以获取完整的参数集dialog()
)
但我不太确定你的意思是什么
因为 Primefaces 4.0 需要一些时间才能完成
您的意思是框架本身需要时间才能达到最终阶段还是学习曲线陡峭?如果是前者,那么使用 jQuery UI 对话框是有意义的。如果是后者,我认为采取任何其他方法都不会更快!无论如何,希望这会有所帮助:)
更新:实际上,您可以只重新渲染内容而不是容器本身。所以在这个例子中你可以重新渲染p:dataTable
而不是容器。