我编写了一个 JS 函数,它在加载下一个屏幕时显示“正在加载”DIV(我使用commanlinks,它工作得很好,带有 onstart="showthemodal"oncomlete="hidethemodal")。
现在问题出在这个页面上,特别是我有一个数据表(我在上面编写了代码),其中数据表内有许多命令链接,并且这里的 onstart 和 oncomplete 不起作用。如果不更改按钮的外观,我无法显示模式。感谢您的支持 有谁知道我该如何解决它?
这是我的代码:
<p:dataTable id="dataTable" var="user"
tableStyle="table-layout: auto"
value="#{gestionUsuariosController.listaUsuarios}" paginator="true"
rows="10" lazy="true" dynamic="true"
style="font-size:16px;">
<p:column styleClass="ellipsis"
sortBy="#{user.userName}">
<f:facet name="header">
<h:outputText value="Nombre" />
</f:facet>
<h:outputText id="userName" value="#{user.userName}" />
<p:tooltip for="userName" value="#{user.userName}" />
</p:column>
<p:column styleClass="ellipsis"
sortBy="#{user.userName}">
<f:facet name="header">
<h:outputText value="Password" />
</f:facet>
<h:outputText id="password" value="#{user.password}" />
<p:tooltip for="password" value="#{user.password}" />
</p:column>
<p:column styleClass="ellipsis" style="width: 80px;">
<f:facet name="header">
<h:outputText value="Accion" />
</f:facet>
<p:commandLink action="consulta" onstart="javascript:bloquearInterfaz();" oncomplete="javascript:desbloquearInterfaz();">
<h:graphicImage value="/resources/img/lupa.png" height="20px"/>
<f:param name="userName" value="#{user.userName}" />
</p:commandLink>
<p:commandLink action="modificacion" onstart="javascript:bloquearInterfaz();" oncomplete="javascript:desbloquearInterfaz();">
<h:graphicImage value="/resources/img/icono_edit.png" height="20px" />
<f:param name="userName" value="#{user.userName}" />
</p:commandLink>
<p:commandLink action="baja" onstart="javascript:bloquearInterfaz();" oncomplete="javascript:desbloquearInterfaz();">
<h:graphicImage value="/resources/img/borrar.png" height="20px" />
<f:param name="userName" value="#{user.userName}" />
</p:commandLink>
</p:column>
</p:dataTable>
最佳答案
要明确一点,onstart
和 oncompelte
是客户端方法,这意味着您无法将其连接到 managedBean
(执行方法),但是可以使用 p:remoteCommand
看起来像这样
mypage.xhtml
<script type="text/javascript">
myfunction () {
...
}
</script>
...
<p:commandButton onstart="myfunction() " />
如果你想执行一个托管Bean方法
mypage.xhtml
<script type="text/javascript">
myfunction () {
...
cpr();
}
</script>
...
<p:remoteCommand name="cpr" actionListener="#{managedBean.method()}" />
<p:commandButton onstart="myfunction() " />
希望对您有帮助。
关于javascript - onstart 和 oncomplete 在 p :commandLink 的数据表中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39874366/