2012-04-18 86 views
3

我有一个使用Datatable和Dialog在一起的大问题。PrimeFaces DataTable选择在dialog.show上变为空()

我需要点击一个数据表的行并显示一个对话框,该对话框从数据表的所选项加载数据。

选择去罚款,但所选择的元素被设置为只要是所示的对话框空:/

下面是一些代码:

<h:form id="form"> 
        <pou:dataTable widgetVar="conv" id="mex" var="conv" value="#{messagesBean.listaConversazioni}" paginator="true" rowKey="#{conv}" paginatorPosition="bottom" 
            selection="#{messagesBean.destinatario}" selectionMode="single" rows="15"> 
         <pou:ajax event="rowSelect" 
            oncomplete="convDialog.show()" update=":form:display, :growl, :menuPanel" /> 
         <pou:column> 
          <f:facet name="header"> 
           <h:outputText value="Conversazioni"/>                   
          </f:facet> 
          <h:outputText value="#{conv.username}"/>         
         </pou:column> 
        </pou:dataTable>      

        <pou:dialog id="convDialog" header="Conversazione" widgetVar="convDialog" onHide="conv.unselectAllRows()" position="center" modal="true" resizable="false" draggable="false" 
           showEffect="explode" hideEffect="explode" height="635" width="620">         
         <h:panelGrid id="display"> 
          <pou:panel id="postForm"> 
           <div align="center"> 
            <pou:inputTextarea value="#{messagesBean.messaggio}" cols="50" autoResize="true" maxlength="255"/> <br/> 
            <pou:commandButton action="#{messagesBean.invia(messagesBean.destinatario)}" value="Invia" update="display, :growl"/> 
           </div> 
          </pou:panel>    
          <pou:panel> 
           <div class="conversazionePanel"> 
            <pou:dataTable id="mexTable" var="mex" value="#{messagesBean.caricaConversazione(messagesBean.destinatario)}" rowStyleClass="postTable">           
             <pou:column style="border: none; background: rgba(0,0,0,0)"> 
              <div id="messaggio_#{mex.idMessaggio}"> 
               <pou:outputPanel rendered="#{mex.mittente eq loginBean.utente}"> 
                <pou:panelGrid columns="2"> 
                 <h:outputText value="Io"/> 
                 <div class="messaggioInviato">#{mex.testo}</div> 
                </pou:panelGrid> 
               </pou:outputPanel> 
               <pou:outputPanel rendered="#{mex.destinatario eq loginBean.utente}">                                     
                <pou:panelGrid columns="2"> 
                 <div class="messaggioRicevuto">#{mex.testo}</div> 
                 <h:outputText value="#{mex.mittente.username}"/> 
                </pou:panelGrid>                         
               </pou:outputPanel>             
              </div> 
             </pou:column>           
            </pou:dataTable> 
           </div> 
          </pou:panel>        
         </h:panelGrid>                      
        </pou:dialog>       
       </h:form> 

_

#{messagesBean.listaConversazioni}返回列表用户

_

#{conv}是用户

_

#{messagesBean.destinatario}是,我需要设置用户。当我点击该行时,它取得了conv的值,但它突然变为null。

奇怪想到的是,

<pou:dataTable id="mexTable" var="mex" value="#{messagesBean.caricaConversazione(messagesBean.destinatario)}" 

同时,在同一个对话框

<h:outputText value="#{messagesBean.destinatario==null}"> 

打印true:\

这有什么错呢?

+0

对这个有什么更新?我正面临着一些simillar – 2012-07-11 20:42:37

回答

0

不知道,但rowKey="#{conv.id}"也许?