JSF Managed Bean中Javascript事件的执行顺序

时间:2015-10-30 08:08:14

标签: jsf jsf-2 primefaces

我有一个带有<p:rowEditor />的primefaces数据表。我的过程的逻辑是当我点击一个按钮时,它假设:

  1. 跳至数据表的最后一页
  2. 刷新表格
  3. 点击最后​​一行的修改按钮
  4. 在页脚中我实现了一个commandButton和remoteCommand,如下所示:

    <f:facet name="footer">
        <p:remoteCommand name="rctype" update="typeDT" 
         actionListener="#{myView.onNewType}" />
        <p:commandButton id="btnNewType" ajax="true" onclick="rctype()"
         update="typeDT" icon="ui-icon-plus" title="New Type" 
         value="New Type" >
        </p:commandButton>
    </f:facet>
    

    我的Bean 看起来像:

    public void onNewType() {
        try {
            ...
            RequestContext.getCurrentInstance().execute("PF('widgettypeDT')
             .paginator.setPage(PF('widgetinitiatorDT').paginator.cfg.pageCount - 1)");
    
            RequestContext.getCurrentInstance()
                        .execute("jQuery('.typeClass')
                        .find('span.ui-icon-pencil').last().click();");
        } catch() {}
    }
    

    但不幸的是,点击事件总是出现在跳转事件之前。

    如何在我的Managed Bean中控制我的Javascript事件的执行顺序?

1 个答案:

答案 0 :(得分:0)

解决方案很简单。在客户端调用一个javascript函数并在那里执行。或者在一个RequestContext.getCurrentInstance()。execute(...)

中同时执行