簡體   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