点击数据表中的第二个而不是第三个CB时,不会调用PF CommandButton(CB)action / actionListener

时间:2016-08-16 09:58:11

标签: ajax jsf-2 primefaces

我在最小的两个屏幕/视图上遇到这个问题,许多commandButtons在新窗口中打开对话框。我使用的是Primefaces 5.3.5和JSF Mojarra 2.2.8。这些action / actionListeners在弹出窗口中打开一个新对话框。第一个commandButton总是打开新对话框,但其他commandButton什么都不做。

<h:form id="dbuserForm">
          <!-- New User Button. This one fires a dialog -->
          <p:commandButton id="newUserGroupBtn" value="#{msg.WEB_BUTTONS_NEW}" style="margin-right: 2px;" actionListener="#{appUserData.toggleNewModal}" icon="fa fa-plus" accesskey="n" update="@form">
              <p:ajax event="dialogReturn" update="@form" />
          </p:commandButton>
    <p:dataTable id="tableDbUser" scrollable="true" width="100%" value="#{tabDbUser.listArray}" var="item" selectionMode="single" rowKey="#{item.idbuserId}">
          <!-- Delete User Button -->
          <p:column>
              <p:commandButton id="deleteAppUserBtn" value="#{msg.WEB_BUTTONS_DELETE}" style="margin-right: 2px;" actionListener="#{appUserData.toggleDeleteModal}" icon="fa fa-remove" accesskey="o" update="@form" disabled="#{appUserData.selectedUserName eq null or appUserData.selectedUserName eq ''}">
                    <p:ajax event="dialogReturn" update="@form" />
                </p:commandButton>
          </p:column>
          <!-- Modify User Button -->
          <p:column>
              <p:commandButton id="modifyAppUserBtn" value="#{msg.WEB_BUTTONS_OPEN}" style="margin-right: 2px;" actionListener="#{appUserData.toggleChangeModal}" icon="fa fa-edit" accesskey="o" update="@form" disabled="#{appUserData.selectedUserName eq null or appUserData.selectedUserName eq ''}">
                    <p:ajax event="dialogReturn" update="@form" />
          </p:column>
    </p:dataTable>
        </h:form>

和我的后端bean

@Override
    public void toggleNewModal(ActionEvent event) {
        RequestContext.getCurrentInstance().openDialog("/dialogs/new-dbuser");
    }
@Override
    public void toggleDeleteModal(ActionEvent event) {
        RequestContext.getCurrentInstance().openDialog("/dialogs/del-report-dialog");
}

public void togglePasswordModal() {
        RequestContext.getCurrentInstance().openDialog("/dialogs/modify-dbuser");
    }

注意新用户按钮仅触发此对话框(new-dbuser)。其他按钮没有任何触发,但它们是可点击的,我看不到任何错误。

我不知道它是否重要,但我的bean被配置为请求范围。

我知道这是一个非常讨论的话题,但我没有找到适合我的任何解决方案。感谢您的任何帮助。我真的陷入困境,因为我没有看到任何错误。请,要有建设性。

0 个答案:

没有答案