我有一个
commandLink
,在数据表中加载了信息,其逻辑是,当变量showPopup
为true
时,它会显示一个弹出窗口,否则不显示它。该变量根据某些条件而变化,并在我的 bean 中通过名为 popup 的方法进行管理。我遇到的问题是,当单击此 commandLink
时,它不会获取该方法分配的变量 showPopup
的值,但如果它正在更改变量的值,如果我希望它起作用的话我必须再次单击它,它就会获得所需的值。总之,我相信当方法中发生变化时,commandLink 不会更新变量 showPopup 的值。
豆子是@ManagedBean @RequestScoped
<!-- more code -->
<t:fieldset styleClass="fieldsetEstilo"
legend="#{mensaje.label_roles}">
<h:panelGroup id="roles">
<p:outputPanel id="outputRoles">
<p:message for="tRoles" />
<p:dataTable value="#{usuario.listaRoles}" var="objRol"
id="tRoles" reflow="true"
emptyMessage="#{mensaje.message_no_existen_registros}">
<f:facet name="header">#{mensaje.label_listado_de} #{mensaje.rol_label_s}</f:facet>
<p:column styleClass="W16P">
<f:facet name="header" />
<!-- HERE IS MY COMMAND LINK -->
<p:commandLink id="asignarLink" styleClass="estiloIcono"
actionListener="#{usuarioAction.setRolPJ(objRol)}"
action="#{usuarioAction.limpiarFechasRoles()}"
oncomplete="if ('#{usuarioAction.mostrarPopupAsignarRol}' == 'true') { PF('popUpAsignarRol').show(); };"
update=":usuarioForm:outputRoles, :usuarioForm:tablaRolesUsuario, :asignarRol, asignarLink"
process="@this">
<i class="fa fa-plus-circle" />
<p:tooltip for="asignarLink" position="top">
<p:outputLabel value="#{mensaje.label_asignar}" />
</p:tooltip>
</p:commandLink>
<!-- more code -->
我尝试更改操作的某些值并更新
commandLink
的属性,但我尚未实现任何更改。
已解决:我只更改 p:dialog 中的可见属性,我的问题出在 p:commandLink 的 oncomplete 属性中