单击编辑按钮
时,对话框中不会显示所选项目
en el apartado del dialog tengo el rendered,que se supone realiza la llamada al controllador
这是我的Carrucel.Xhtml
<p:commandButton update="tab:formIndex:myform:editarSlider" oncomplete="PF('popupEditSlider').show()" icon="ui-icon-pencil" title="Editar">
<f:setPropertyActionListener value="#{car}" target="#{carrucelController.selectCarrucel}" />
</p:commandButton>
<p:dialog id="dialog" header="Editar Slider" widgetVar="popupEditSlider" modal="true" showEffect="fade" hideEffect="fade" resizable="false">
<p:outputPanel id="editarSlider" style="text-align:center;">
<p:panelGrid columns="2" rendered="#{not empty carrucelController.selectCarrucel}" columnClasses="label,value">
<f:facet name="header">
<img src="#{arrucelController.selectCarrucel.imagen}" style="height: 80px;"/>
</f:facet>
<h:outputText value="Titulo" />
<p:inputText value="#{arrucelController.selectCarrucel.nombre}" />
<h:outputText value="Texto:" />
<p:inputText value="#{arrucelController.selectCarrucel.textoImagen}" />
</p:panelGrid>
<br></br>
<p:commandButton id="btnGuardar" styleClass="clsButton" value="Guardar" actionListener="#{carrucelController.editSlider}"
oncomplete="PF('popupEditSlider').hide()" update="@form"/>
</p:outputPanel>
</p:dialog>
我的控制器
这里我已经定义了版本的方法
public void editSlider() {
log.info("[-- Editar Slider: " + selectCarrucel.getNombre() + " --]");
for(int i=0; i<lstCarrucel.size(); i++) {
log.info("[-- " + selectCarrucel.getNombre() + " - " +
selectCarrucel.getLink() + " - " + selectCarrucel.getTextoImagen() + " --]");
if(lstCarrucel.get(i).getNombre() == selectCarrucel.getNombre()){
lstCarrucel.get(i).setNombre(selectCarrucel.getNombre());
lstCarrucel.get(i).setTextoImagen(selectCarrucel.getTextoImagen());
lstCarrucel.get(i).setLink(selectCarrucel.getLink());
}
}
}
}
这是编辑我的项目的方法
答案 0 :(得分:0)
您正在重新渲染整个页面时生成对话框的内容。因此,当准备好对话框内容时,#{carrucelController.selectCarrucel}
为null
。
您的按钮现在在辅助bean中设置属性 - 只显示属性为null时呈现的对话框。
在对话框中使用dynamic=true
可以解决您的问题。这将在对话框显示时显示(即setPropertyActionListener
调用show()
到onComplete
后),而不是在第一页加载期间在dom中生成对话框时。
供参考:https://www.primefaces.org/showcase/ui/overlay/dialog/dynamic.xhtml