0

我有一个带有复选框列的数据表。来自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>

在下面的代码正确加载列表之前,屏幕只显示一条选定的记录。

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.xml 中遗漏了一些东西。

4

1 回答 1

0

没有使用primefaces选择列,但是......

INMO您应该将所需的元素添加到 中selectedMensagensselectedMensagens应该代表选定的行...,在服务器端执行该逻辑(@PostConstruct例如),如果某个元素dataModelMsg满足条件,您应该将其添加到selectedMensagens

于 2013-04-03T20:38:53.427 回答