我尝试使用对话框架 - 基本
从primefaces网站开始 <p:commandButton value="Options" icon="ui-icon-extlink" action="#{dialogBean.viewCarsCustomized}" />
Bean DialogBean
public class DialogBean {
public String viewCarsCustomized() {
return "dialog:viewCars?modal=true";
}
}
viewCars.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
</h:head>
<h:body>
<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:dataTable>
</h:body>
</html>
这是我在My Bean上的例子。 我试试这个
public String viewComposant(){
return "dialog:AjoutC?modal=true";
}
它不起作用,我尝试这样做。但每次都是错误
Impossible de trouver un cas de navigation相应的depuis l'ID de vue'/ pagess/Parsing/ReacgModule.xhtml'pour l'action '#{parserXls.viewComposant()}'aveclerésultat '对话框:/pagess/pagesComposant/AjoutC.jsf模态=真'。
public String viewComposant(){
return "dialog:/pagess/pagesComposant/AjoutC.jsf?modal=true";
}
但是当我这样做时,页面会退回,但不是我喜欢
public String viewComposant(){
return "/pagess/pagesComposant/AjoutC.jsf";
}
答案 0 :(得分:6)
3.5版本的primefaces
来自"Dialog Framework"的dialog:
导航结果前缀在PrimeFaces 4.0中引入,并且不适用于旧版本。
所以,你有两个选择:
dialogWidgetVar.show()
或JSF中的visible="#{someCondition}
的方法。另请参阅the <p:dialog>
examples in PrimeFaces showcase。 更新:根据评论,这里有如何在JS中使用widgetVar
方法:
<p:button value="Open dialog" onclick="w_dialog.show(); return false;" />
<p:dialog widgetVar="w_dialog">
<p>Dialog's content.</p>
<p:dialog>
以下是您在JSF中使用visible
方法的方法:
<h:form>
<p:commandButton value="Open dialog" action="#{bean.showDialog}" update=":dialog" />
</h:form>
<p:dialog id="dialog" visible="#{bean.showDialog}">
<p>Dialog's content.</p>
<p:dialog>
与
private boolean showDialog;
public void showDialog() {
showDialog = true;
}
public boolean isShowDialog() {
return showDialog;
}
如有必要,您可以将<p:dialog>
移至<ui:include>
所包含的包含文件中。