Primefaces selectCheckboxMenu在标签关闭时更新标签

时间:2015-12-29 06:42:41

标签: jsf primefaces

我正在使用primefaces 5.2。 我在<p:selectCheckboxMenu>内有一个<p:dataTable>用于选择多个值。 selectCheckboxMenu的标签显示&#39; Select&#39;。我想更新checkboxMenu的标签为&#39;编辑&#39;如果选择了某个值,或者将其保留为&#39;选择&#39;如果没有选择。我希望只有在selectCheckboxMenu关闭后才会发生这种情况。

我提到了stackoverflow问题How to update the label of p:selectCheckboxMenu without the component being closed after ajax call in primefaces?。但是从checkboxMenu中选择一些值后,菜单会闪烁片刻(发生ajax调用并更新标签)并重新出现。但由于两者之间发生了眨眼,这种行为很奇怪。例如。如果我选择菜单中的第一个复选框,然后立即选择第二个复选框,它会闪烁,当它再次出现时,只会选中一个复选框。以下是代码段:

<p:column headerText="Apply To"  style="width:120px;text-align:center;">
    <p:selectCheckboxMenu id="applyToId" value="#{rule.accountTypes}" 
            label="#{rule.accountTypeLabel}" widgetVar="accntType">                                      
                <f:selectItems value="#{controller.customerAccTypes}" />
                    <p:ajax oncomplete="PF('accntType').show()"
                            listener="#{controller.populateLabel(rule,event)}"
                            update="applyToId"></p:ajax> 
    </p:selectCheckboxMenu></p:column>

控制器方法:

public void populateLabel(NewRules rule,AjaxBehaviorEvent event) {
    if (rule.getAccountTypes().length == 0) {
        rule.setAccountTypeLabel("Select One"); 
    } else {
         rule.setAccountTypeLabel("Edit"); 
    }}

我不确定我做错了什么。提前谢谢。

0 个答案:

没有答案