0

チェックボックス列を持つ dataTable があります。dataTable からのデータをデータベースにロードします。これまでのところ、すべてがうまくいっています。これを行うと、特定の条件でマークされたチェックボックスが表示される必要がありますか?

dataTable コードに従います。

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

以下のコードがリストを正しくロードするまで、選択されたレコードの 1 つだけが画面に表示されます。

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に何かが欠けていると思います。

4

1 に答える 1

0

プライムフェイスの選択列は扱っていませんが...

INMO に必要な要素を追加する必要がありselectedMensagensselectedMensagens選択した行を表す必要があります... 、サーバー側でそのロジックを実行します (@PostConstructたとえば)、特定の要素dataModelMsgが条件を満たしている場合は、それをに追加する必要がありますselectedMensagens

于 2013-04-03T20:38:53.427 に答える