通过 a4j 命令调用时,模态面板不显示正确的注释链接

The modal panel does not display the correct comment when called through an a4j commandlink

我想为评论显示一个省略号 link。然后当用户点击省略号时,完整的评论就会显示在模态面板中。 如果评论超过 8 个字符,则会显示省略号。

它工作正常,只是没有显示适当的评论....例如...第一个评论显示第二个评论,依此类推。 我在 modalpanel 中打印了 rowIndex,它从第一行的 1 开始,第二行的数据从 2 开始,依此类推。

请帮助我在模态面板中获得正确的评论。

下面的部分是一个丰富的扩展数据表,它有 var="row" rowKeyVar="rowIndex"

<rich:column sortable="true" width="13%">
    <f:facet name="header">
        <h:outputText value="#{msg.COMMENTS}" escape="false" />
    </f:facet>

   <!-- Start : change to add ellipsis for long comments -->                                
   <h:outputText value="#{not empty row.comments or fn:length(row.comments) gt 10 ? fn:substring(row.comments, 0, 8) : row.comments}" />

  <a4j:commandLink id="descriptionLink" value="#{not empty row.comments or fn:length(row.comments) gt 8 ? '...' : ' '}"
    onclick="showProgressLoader();"                                     
    oncomplete="Richfaces.showModalPanel('popup');hideProgressLoader();"
    style="font-size: 10pt;font-weight: bold;"
    reRender="popup">
  </a4j:commandLink>

 <rich:modalPanel id="popup" resizeable="true">  
    <f:facet name="header">  
        <h:outputText id="description" value="Full Comment" /> 
    </f:facet>  
    <f:facet name="controls">  
    <h:graphicImage value="/images/delete.png" style="cursor:pointer" onclick="#{rich:component('popup')}.hide()" height="10px" width="10px"/>  
        </f:facet>  
            <p>  
                #{row.comments} #{rowIndex}
            </p>  
  </rich:modalPanel>                                    
</rich:column>
<!-- End : change to add ellipsis for long comments -->

您可以将面板放在 table 之外,而不是每行一个面板。当您单击按钮时,您将所选项目保存在您的 bean 中,然后重新呈现面板以显示正确的项目,例如:

<a4j:commandLink … 
     onclick="bean.setSelectedItem(row)"
     oncomplete="Richfaces.showModalPanel('popup');" />

<rich:modalPanel id="popup" resizeable="true">
    …
    #{bean.selectedItem.comment}
</rich:modalPanel>