java - 如何获取 <p :column> in a facelet using EL 的嵌套组件

标签 java jsf jakarta-ee primefaces dynamic-columns

假设我有这个:

<p:column headerText="R"
          style=" text-align: center;"
          width="10"
          rendered="true">
  <p:commandLink id="MRepShowButton" update=":form1:display" onclick="EditorDialog.show();"  title="Editer le compte rendu"> 
  <f:setPropertyActionListener value="#{exam}" target="#{dyna.selectedExamen}" />  
     <p:graphicImage id="img1" value="/images/study_Report_icons/Text/0.png" rendered="#{exam.examen.rapport.rapportWrittenState == null}"/>
     <p:graphicImage id="img2" value="/images/study_Report_icons/Text/#{exam.examen.rapport.rapportWrittenState}.png" rendered="#{exam.examen.rapport.rapportWrittenState != null}"/>
  </p:commandLink>
</p:column> 

现在我如何使用 <p:columns> 来实现这一点

<p:columns value="#{tableBean.columns}" var="column" columnIndexVar="colIndex" 
           sortBy="#{column.property}" filterBy="#{column.property}">
                    <f:facet name="header">
                        #{column.header}
                    </f:facet>

                    #{car[column.property]}

                </p:columns>

有关此主题的所有示例和教程仅涵盖简单的 <h:outptText>嵌套在列中的组件(p:graphicImage,p:commandLink等)怎么样,如上面的代码。 你是如何实现这一目标的?

最佳答案

您可以渲染 元素内的任何元素。

您想要做的可能是根据列以不同的方式呈现单元格内容。你可以尝试这样的事情:

  //classic rendering (for all cells)
  <h:outputText value="#{car[column.property]}"/>

  //conditional rendering (for 'report' cells only)
  <h:panelGroup rendered="#{column.property == 'report'}">
    <p:commandLink id="MRepShowButton" update=":form1:display" onclick="EditorDialog.show();"  title="Editer le compte rendu">
      <f:setPropertyActionListener value="#{exam}" target="#{dyna.selectedExamen}" />  
      <p:graphicImage id="img1" value="/images/study_Report_icons/Text/0.png" rendered="#{exam.examen.rapport.rapportWrittenState == null}"/>
      <p:graphicImage id="img2" value="/images/study_Report_icons/Text/#{exam.examen.rapport.rapportWrittenState}.png" rendered="#{exam.examen.rapport.rapportWrittenState != null}"/>
    </p:commandLink>
  </h:panelGroup>

关于java - 如何获取 <p :column> in a facelet using EL 的嵌套组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789832/

相关文章:

java - 如何正确构建java maven项目的jar文件?

java - 运行 Eclipse 产品导出向导后,我在导出\eclipse 文件夹中看不到 exe 文件

java - JSF 2.0 AJAX : Call a bean method from javascript with jsf. ajax.request(或其他方式)

jsf 可编辑下拉列表

java - 如何使用 Struts 和 GlassFish 创建 Java Web 应用程序?

jakarta-ee - NetBeans IDE在“清理和构建”或外部更改时发出异常的编译器错误。IDE不再意识到JPA生成的静态元模型

java - GlassFish SHA-256 摘要认证

java - 数一数使用 java 在文件中出现确切的单词

java - Y 轴在 JFreeChart 中未显示百万和十亿的正确数字

java - 通过 faces-config.xml 确定 SelectItem 数组值