javascript - onstart 和 oncomplete 在 p :commandLink 的数据表中不起作用

标签 javascript primefaces

我编写了一个 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>
                &nbsp;
                <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>
                &nbsp;
                <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>

最佳答案

要明确一点,onstartoncompelte 是客户端方法,这意味着您无法将其连接到 managedBean (执行方法),但是可以使用 p:remoteCommand

使其工作(执行 ManagedBean 方法)

看起来像这样

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/

相关文章:

css - 覆盖 primefaces 主题 - 具有多个彩色行的数据表

java - f :param returns null?

javascript - 在 react 中从数组中删除对象

primefaces 数据表行着色

jsf - PE :triStateCheckbox doesn't work with p:ajax

javascript - 未捕获的类型错误 : Cannot read property 'ownerDocument' of undefined

java - Primefaces 中是否有任何选取框效果行为......?

javascript - 如何在 X 轴上方显示 Y 轴?

javascript - 如何使用日期选择器将明天的日期设置为默认日期?

javascript - Html5 视频加载不正确