Java a4j:commandLink在双击后执行操作
我有一个带有Java a4j:commandLink在双击后执行操作,java,ajax,jsf,richfaces,Java,Ajax,Jsf,Richfaces,我有一个带有a4j:commandLink的用户表,该表删除了相应的用户,但问题是我需要单击两次才能执行操作,我如何解决它,下面是代码: <h:form id="formUsuariosRegistrados"> <rich:dataScroller for="usersTable" fastControls="hide"
a4j:commandLink
的用户表,该表删除了相应的用户,但问题是我需要单击两次才能执行操作,我如何解决它,下面是代码:
<h:form id="formUsuariosRegistrados">
<rich:dataScroller for="usersTable" fastControls="hide"
boundaryControls="hide" />
<rich:dataTable id="usersTable" rows="10" var="user"
value="#{administrationBean.tablaUsuarios}">
<f:facet name="header">
<rich:columnGroup>
<rich:column>
<h:outputText value="Nombre"/>
</rich:column>
<rich:column>
<h:outputText value="Usuario"/>
</rich:column>
<rich:column>
<h:outputText value="Dependencia"/>
</rich:column>
<rich:column>
<h:outputText value="Email"/>
</rich:column>
<rich:column>
<h:outputText value="Tipo usuario"/>
</rich:column>
<rich:column>
<h:outputText value="Tipo dependencia"/>
</rich:column>
<rich:column>
<h:outputText value="Fecha límite"/>
</rich:column>
<rich:column>
<h:outputText value=""/>
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column>
<h:outputText value="#{user.nombre}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.usuario}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.dependencia}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.correo}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.tipoUsuario}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.tipoDependencia}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.fechaLimiteCarga}"/>
</rich:column>
<rich:column>
<a4j:commandLink value="Eliminar" immediate="true"
execute="@form"
onclick="return confirm('Esta seguro(a) que deseea continuar?')"
render="@form :formFechaLimite :formModificarContrasena"
action="#{administrationBean.doEliminarUsuario(user.usuario)}"/>
</rich:column>
</rich:dataTable>
</h:form>
在用表更新所示表单的另一个表单中,确保在ajax
render
中包含表单的客户端ID。否则,更新后的表单将丢失其视图状态,因此在第一次提交时不会处理任何内容。第一次提交后,表单将返回其视图状态,后续提交将成功处理
例如
...
...
...
...
这个问题与即将发布的JSF2.2相关,并且已经修复。PrimeFaces 3.x没有这个问题,因为它经过修改的JSF ajax引擎已经考虑到了这一点
另见:
render
属性中缺少的ID?这是另一个问题。复选框(和单选按钮)始终仅在第二次单击时更改。第一次单击时,无法进行更改。您需要用event=“click”
替换event=“change”
中的。它已默认为正确的事件。以后请问一个新问题,不要重复使用旧问题。谢谢@BalusC,我会检查的。我认为这和同一个问题有关,所以我在上面发了帖子。我会记住的。谢谢谢谢@BalusC一直以来的大力帮助。顺便说一句,祝OmniFaces好运!
<h:form id="formFechaLimite">
<rich:panel style="width: 400px" id="panelFechaLimite">
<f:facet name="header">
<h:outputText value="Fecha limite de carga"/>
</f:facet>
<h:outputLabel for="fechaLimite" value="Fecha Limite"/>
<br/>
<rich:calendar id="fechaLimite"
value="#{administrationBean.fechaLimite}"
datePattern="dd/MM/yyyy">
<a4j:ajax event="change" render="usuarios fechaLimiteModificada"
listener="#{administrationBean.doHideEtiquetaFechaModificada}"/>
</rich:calendar>
<br/>
<h:outputLabel for="todosUsuarios"
value="Aplicar a todos los usuarios? "/>
<h:selectBooleanCheckbox id="todosUsuarios"
value="#{administrationBean.fechaTodosUsuarios}">
<a4j:ajax event="change" render="usuarios fechaLimiteModificada"
listener="#{administrationBean.doCheckBoxChanged}"/>
</h:selectBooleanCheckbox>
<br/>
<a4j:outputPanel id="usuarios">
<rich:select value="#{administrationBean.selectedUser}"
defaultLabel="Seleccione un usuario..."
rendered="#{not administrationBean.fechaTodosUsuarios}">
<f:selectItems value="#{administrationBean.selectUser}"/>
<a4j:ajax event="selectitem" render="fechaLimiteModificada"
listener="#{administrationBean.doHideEtiquetaFechaModificada}"/>
</rich:select>
</a4j:outputPanel>
<br/><br/>
<a4j:commandButton value=" Aplicar " execute="@form"
render="@form :panelUsuarios :formUsuariosRegistrados :usersTable"
action="#{administrationBean.doCambiarFechaLimite}"/>
<a4j:outputPanel id="fechaLimiteModificada">
<h:outputText value="Fecha límite modificada !"
rendered="#{administrationBean.renderedEtiquetaFechaModicada}"
style="color: #D17100; font-size: 14px;"/>
</a4j:outputPanel>
</rich:panel>
<br/>
</h:form>
<br/>
<rich:panel style="width: 800px" id="panelUsuarios">
<f:facet name="header">
<h:outputText value="Administración de usuarios"/>
</f:facet>
<h:form id="formUsuariosRegistrados">
<rich:dataScroller for="usersTable" fastControls="hide"
boundaryControls="hide" />
<rich:dataTable id="usersTable" rows="10" var="user"
value="#{administrationBean.tablaUsuarios}">
<f:facet name="header">
<rich:columnGroup>
<rich:column>
<h:outputText value="Nombre"/>
</rich:column>
<rich:column>
<h:outputText value="Usuario"/>
</rich:column>
<rich:column>
<h:outputText value="Dependencia"/>
</rich:column>
<rich:column>
<h:outputText value="Email"/>
</rich:column>
<rich:column>
<h:outputText value="Tipo usuario"/>
</rich:column>
<rich:column>
<h:outputText value="Tipo dependencia"/>
</rich:column>
<rich:column>
<h:outputText value="Fecha límite"/>
</rich:column>
<rich:column>
<h:outputText value=""/>
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column>
<h:outputText value="#{user.nombre}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.usuario}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.dependencia}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.correo}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.tipoUsuario}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.tipoDependencia}"/>
</rich:column>
<rich:column>
<h:outputText value="#{user.fechaLimiteCarga}"/>
</rich:column>
<rich:column>
<a4j:commandLink value="Eliminar" immediate="true"
execute="@form"
ondblclick="return confirm('Esta seguro(a) que deseea continuar?')"
render="@form :formFechaLimite :formModificarContrasena"
action="#{administrationBean.doEliminarUsuario(user.usuario)}"/>
</rich:column>
</rich:dataTable>
</h:form>
<br/>
</rich:panel>