onstart和oncomplete不能在数据表中使用p:commandLink

时间:2016-10-05 12:46:33

标签: 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>

1 个答案:

答案 0 :(得分:0)

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

工作(执行managedBean方法)

看起来像这样

<强> mypage.xhtml

<script type="text/javascript">
  myfunction () {
          ...
  }            
</script>

...

<p:commandButton  onstart="myfunction() "  />

如果要执行managedBean方法

<强> mypage.xhtml

<script type="text/javascript">
   myfunction () {
        ...
        cpr();
   }            
</script>

...

<p:remoteCommand  name="cpr" actionListener="#{managedBean.method()}"  />
<p:commandButton  onstart="myfunction() "  />
希望能帮助你。