Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JSF和Primefaces在datatable中一次性呈现panelgrid?_Java_Jsf_Primefaces - Fatal编程技术网

Java 如何使用JSF和Primefaces在datatable中一次性呈现panelgrid?

Java 如何使用JSF和Primefaces在datatable中一次性呈现panelgrid?,java,jsf,primefaces,Java,Jsf,Primefaces,我在这个数据表的一列中有一个primefaces数据表和两个panelgrid。第二个panelgrid工作正常,但我只需要渲染第一个panelgrid一次。我在下面添加了我的代码。如何为每个变量渲染第一个panelgrid一次 <p:dataTable value="#{bean.list}" var="var"> <p:column style="width: 60px;" groupRow="true"> <!--data-->

我在这个数据表的一列中有一个primefaces数据表和两个panelgrid。第二个panelgrid工作正常,但我只需要渲染第一个panelgrid一次。我在下面添加了我的代码。如何为每个变量渲染第一个panelgrid一次

<p:dataTable value="#{bean.list}" var="var">
    <p:column style="width: 60px;" groupRow="true">
        <!--data-->
    </p:column>                            
    <p:column>
        <p:panelGrid columns="4">   
            <!--data-->
        </p:panelGrid>
        <p:panelGrid columns="4" rendered="#{!rendered}">
            <!--data-->
        </p:panelGrid>
    </p:column>
</p:dataTable>

分解你的问题,并将其概括化。你的头衔已经有两个(或三个)太具体了

如何使用JSF和Primefaces在datatable中一次性呈现panelgrid

  • “panelgrid”可以更改为“组件”
  • “一次”可以更改为“有条件”
而且“单一时间”不够具体,就像我在评论中试图澄清的那样。实际上,您希望根据行号或索引对其进行渲染(或不渲染)

因此,更好的标题(和问题)应该是:

如何仅在p:datatable的第一行中呈现组件

但是

对于有条件地渲染组件,您可能已经知道需要使用
rendered
属性。而对于这些问题已经存在

如果您知道您需要某种行号或索引(在JSF或
p:datatable
中),那么您可以在搜索引擎中为其创建一个搜索,并找到显示
rowIndexVar
属性存在的内容。除此之外,或者更确切地说,在此之前,仅在IDE中使用代码完成或使用PrimeFaces文档就可以指示是否存在
rowIndexVar
属性

将所有这些结合起来不会太困难,并将为您提供以下工作代码:

<p:dataTable value="#{bean.list}" var="var" rowIndexVar="index">
    <p:column style="width: 60px;" groupRow="true">
        <!--data-->
    </p:column>                            
    <p:column>
        <p:panelGrid columns="4" rendered="#{index == 0}>   
            <!--data-->
        </p:panelGrid>
        <p:panelGrid columns="4" rendered="#{!rendered}">
            <!--data-->
        </p:panelGrid>
    </p:column>
</p:dataTable>


一次?意思是只有一行?@Kukeltje,是的。没错。使用这个:并在呈现属性中使用indexvar