繁体   English   中英

需要获取所选复选框的动态计数

[英]Need to get dynamic count of the selected check-boxes

我有两种类型的复选框,一种是数据表标题中的selectAll复选框,另一种是选择每一行的复选框。

我正在做一个操作,因此我需要显示确认消息,如何从托管Bean中获取所选复选框的计数。

我的代码是用JSF 1.2编写的。

我可以选择所有记录,选择记录,ManagedBean工作正常,但是我需要选择其中的几个进行删除。 这是JSF代码,

<i:commandLink id="delete" 
    onclick="if (!confirm('#{managedBean.deleteSelectedCount}')) return false;"
    action="#{managedBean.deleteRecords}"
    title="Delete records"
    immediate="true">
    <i:graphicImage url="images/icons/delete.gif" alt="Delete records" />
</i:commandLink>
 ;
 ;//Some coding
 ;
 //Data table code starts
 <i:dataTable id="caseDataTable"


 <h:column>
    <f:facet name="header">                             
        <i:selectBooleanCheckbox id="selectAllRecords" title="select All records" 
            value="#{managedBean.selectAll}">
                <a4j:support event="onclick"  reRender="caseDataTable,globalMessages" action="#{managedBean.actionSelectAllRecordss}"                                                           onsubmit="showBusyIndicator();" oncomplete="hideBusyIndicator();" />
        </i:selectBooleanCheckbox>                          
    </f:facet>
    <h:outputLabel for="selectCheckbox" value="selectCheckbox"/>
        <i:selectBooleanCheckbox id="selectCheckbox" 
            title="select a record" value="#{managedBean.selected}" >
                <a4j:support event="onclick" reRender="selectAllRecords, globalMessages" action="#{managedBean.actionSelectionChange}"
                  onsubmit="showBusyIndicator();"  oncomplete="hideBusyIndicator();"/>
        </i:selectBooleanCheckbox>
</h:column>

可能的解决方案是使用h:inputHidden组件(我认为它存在于JSF 1.2中。如果没有,则可以找到一些替代方法)。

例如

  1. h:inputHidden添加到页面

     <h:inputHidden id="selectedCountHidden" value="#{managedBean.deleteSelectedCount}"/> 
  2. 每次单击标题复选框或任何行复选框时deleteSelectedCount计算deleteSelectedCount值并重新呈现h:inputHidden 就像是

     <i:selectBooleanCheckbox id="selectCheckbox" title="select a record" value="#{managedBean.selected}" > <a4j:support event="onclick" reRender="...,selectedCountHidden,..." 
  3. 现在,由于h:inputHidden将始终保留deleteSeletedCount值,因此您可以通过Java脚本读取其值,因此在单击commandLink时无需重新加载页面

     <i:commandLink id="delete" onclick="if(!confirm(document.getElementById('form:selectedCountHidden').value))return false;"..../> 

请注意,如果您有定义了id表单,则需要调用

document.getElementById('form:selectedCountHidden').value

否则就打电话

 document.getElementById('selectedCountHidden').value

无论如何,请检查页面源,您将找到p:inputHidden的确切id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM