2013-04-03 46 views
0

我有一個複選框列的dataTable。來自dataTable的數據我加載數據庫。到目前爲止,一切進展順利。我需要在某些情況下出現一些複選框標記,因爲我這樣做?帶有複選框的DataTable jsf

以下數據表代碼:

<p:dataTable id="dataTable" var="valor" 
         style="width:100%; text-align:center" 
         value="#{beanMensagemXContato.dataModelMsg}" 
         paginator="true" rows="5" 
         paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
         rowsPerPageTemplate="5,10,15" 
         selection="#{beanMensagemXContato.selectedMensagens}"> 



         <f:facet name="header"> 
          Mensagens 
         </f:facet> 

         <p:column selectionMode="multiple" style="width:5%"> 

         </p:column>      

         <p:column> 
          <f:facet name="header"> 
           <h:outputText value="Código" /> 
          </f:facet> 
          <h:outputText value="#{valor.idtMensagem}" /> 
         </p:column> 

         <p:column> 
          <f:facet name="header"> 
           <h:outputText value="Mensagem" /> 
          </f:facet> 
          <h:outputText value="#{valor.nomMensagem}" /> 
         </p:column> 

         <p:column> 
          <f:facet name="header"> 
           <h:outputText value="Descrição" /> 
          </f:facet> 
          <h:outputText value="#{valor.desMensagem}" /> 
         </p:column> 

         <p:column> 
          <f:facet name="header"> 
           <h:outputText value="Configurador" /> 
          </f:facet> 
          <h:outputText value="#{valor.indConfigurador}" /> 
         </p:column> 
        </p:dataTable> 

直到下面的代碼是列表中正確加載,屏幕只顯示所選擇的記錄之一。

listaMsgContato = consultaContatoEmail.listarMensagensAssociadas(selectedConsulta.getIdtContato()); 
     int l=0; 
     int tamanho = listaMsgContato.size(); 
     selectedMensagens = new Mensagem[tamanho]; 
     for(int i=0; i<listaMsgContato.size(); i++){    
      for(int j=0; j<listaMsg.size();j++){ 
       System.out.println("Lista Msg Contato: " + listaMsgContato.get(i).getIdtMensagem() + " - Lista Msg: " + listaMsg.get(j).getIdtMensagem()); 
       if((long)listaMsgContato.get(i).getIdtMensagem()==(long)listaMsg.get(j).getIdtMensagem()){ 
        System.out.println("Entrou"); 
        //Fazer o selectedMensagens receber os valores. 
        selectedMensagens[l]=listaMsg.get(j);     
        l++;  
       } 
      }   
     } 

我想你錯過了我的xhtm中的一些東西。

+0

發佈使用複選框的代碼段 – Daniel 2013-04-03 19:30:53

+0

INMO你的表和列,你應該添加所需的元素/秒到'selectedMensagens' ,'selectedMensagens'應該代表所選擇的行...,在服務器端執行該邏輯(在@ @ PostConstruct'中用於例子如果'dataModelMsg'中的某個元素滿足條件,則應該將它添加到'selectedMensagens' – Daniel 2013-04-03 19:37:04

+0

好吧!我會盡力。謝謝! – Deb 2013-04-03 19:44:02

回答

0

未與primefaces選擇列的工作,但...

INMO你應該添加所需的元素/秒到selectedMensagensselectedMensagens應該代表選定的行...,做服務器端的是邏輯(在@PostConstruct爲例),如果從dataModelMsg某一個元素滿足條件,就應該把它添加到selectedMensagens