p:selectBooleanCheckbox后的简单弹出窗口?

时间:2014-01-31 13:32:14

标签: jsf primefaces

我有几个页面,我以这种方式使用PrimeFaces复选框:

<p:column>
  <f:facet name="header">
    <p:selectBooleanCheckbox value="#{Bean.allChecked}">
      <p:ajax process="@this" update=":form:table" listener="#{Bean.handleAllChecked}"/>
    </p:selectBooleanCheckbox>
  </f:facet>
 ...
</p:column>

我想打开一个信息弹出对话框,说“这将选择所有项目!”只有一个“确定”按钮。我该怎么办?

请记住,有几个页面具有相同的行为,并且我希望尽可能避免一遍又一遍地复制/粘贴相同的代码。

1 个答案:

答案 0 :(得分:0)

使用primefaces commandButtonConfirmation dialog

可以实现这一目标

在你的xhtml文件中

<f:facet name="header">
  <p:commandButton value="Select All" actionListener="#{testBean.handleAll}">
        <p:confirm header="Select All" message="This will select all items?" 
         icon="ui-icon-alert" />
  </p:commandButton>
</f:facet>

添加确认对话框代码(您可以创建一个文件,只包含在任何xhtml中)

<p:confirmDialog global="true" showEffect="fade" hideEffect="explode">
            <p:commandButton value="Yes" type="button"
                styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
            <p:commandButton value="No" type="button"
                styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
        </p:confirmDialog>

<强> Managedbean

public void handleAll(ActionEvent event){
        System.out.println("called only when selected yes");
    }

方法handleAll只有在用户点击“Yes”时才会被调用,否则它将无法执行任何操作。

我希望有帮助