【问题标题】:data Table on JSF + PrimeFaces [closed]JSF + PrimeFaces 上的数据表 [关闭]
【发布时间】:2013-06-21 10:00:40
【问题描述】:

我需要一些帮助,因为我需要在我的页面中创建动态表格,为此我使用 ui:重复标签。 这是我在 jsf 文件中的代码:

<ui:define name="contenido">
    <p:fieldset legend="Cronograma">
        <ui:repeat value="#{cronogramaBean.cronogramaBB.listaParciales}" var="parciales">
            <br/>
            <p:dataTable id="tablaPacial"
                         value="#{**here I want to use the same item in the list that I use in the Ui:repeat**}"
                         var="parcial"
                         emptyMessage="No existen registros"
                         rows="10"
                         rowIndexVar="rowIndex"
                         sortBy="#{parcial.ordinal}"  sortOrder="ascending"
                         style="overflow: auto">
                <f:facet name="header">  
                    <p:outputLabel value="#{parcial.ciclo.nombre}"/>
                </f:facet>
                <p:column headerText="Nº"
                          style="text-align: center; width: 20px">
                    <h:outputText value="#{rowIndex+1}"/>
                </p:column>
                <p:column headerText="Nombre"
                          style="width: 100px">
                    <h:outputText value="#{parcial.nombre}"/>
                </p:column>
            </p:dataTable>
        </ui:repeat>
    </p:fieldset>
</ui:define>

ui:repat 标记需要在值中包含一个列表和一个用于迭代列表的 var,在 ui:repeat 内我想创建具有相同列表的表。 这可能吗? 我该怎么做?

【问题讨论】:

  • 我建议从您的问题中删除不相关的噪音并重新表述您的问题,如下所示:“我有这个 JSF 代码 [...]。我想实现这个 HTML 输出 [...]。如何我能做到吗?”这更容易理解。我尝试将您的问题编辑成一种可以理解的方式,但我在 ui:repeat 中的句子 " 中失败了我想创建表格,但我还需要一个列表,我无法使用相同的列表ui:重复”。那部分是无法理解的。代码是一种比文字更容易理解的通用语言。
  • 对不起,感谢您的帮助,我做其他事情来实现我想要的。我创建了一个新对象,因为我需要另一个列表中的一个列表,一个用于重复,另一个用于 dataTable。
  • 我还是不明白你。单击“编辑”并根据我之前的评论改进您的问题。 “我有这个 JSF 代码 [...]。我想实现这个 HTML 输出 [...]。我怎样才能实现这个?”。填写 [...] 中缺少的部分。
  • 虽然说“您需要先学习英语,我们才能帮助您解决您的问题”并不容易,但这是任何沟通都需要更好的英语的完美案例。 codinghorror.com/blog/2009/03/the-ugly-american-programmer.html
  • 非常感谢您的帮助,希望这次您能理解问题:)

标签: java html jsf-2 primefaces


【解决方案1】:

要回答您的问题,是的,您可以对ui:repeatp:dataTable 使用相同的value 但是它会执行您不想要的行为。所有表都将具有完全相同的数据。

要实现您想要的,您需要将#{cronogramaBean.cronogramaBB.listaParciales} 更改为ListList 示例:

public List<List<Partial>> getListaParciales()
{

}

并像这样修改您的视图:

<ui:define name="contenido">
    <ui:repeat value="#{cronogramaBean.cronogramaBB.listaParciales}" var="parciales">
        <p:fieldset legend="Cronograma">
            <p:dataTable id="tablaPacial"
                    value="#{parciales}"
                    var="parcial"
                    emptyMessage="No existen registros"
                    rows="10"
                    rowIndexVar="rowIndex"
                    sortBy="#{parcial.ordinal}"  sortOrder="ascending"
                    style="overflow: auto">
                <f:facet name="header">
                    <p:outputLabel value="#{parcial.ciclo.nombre}"/>
                </f:facet>
                <p:column headerText="Nº"
                        style="text-align: center; width: 20px">
                    <h:outputText value="#{rowIndex+1}"/>
                </p:column>
                <p:column headerText="Nombre"
                        style="width: 100px">
                    <h:outputText value="#{parcial.nombre}"/>
                </p:column>
            </p:dataTable>
        </p:fieldset>
    </ui:repeat>
</ui:define>

【讨论】:

  • 其实目标是动态生成多张表....
  • @XavierÑauñay 你的 bean 中有 ListList 吗?否则会重复相同的数据,这可能是你不想要的。
  • 是的,我得到了重复的条目,使用列表列表是唯一的方法吗??
  • 你需要一个List的List,否则每个表中的数据都一样,所以只保留最后一个。您是否希望用户填写一张表并根据他需要的数量动态添加新表?
  • 不,现在我使用List of List 选项的想法是从数据库中为每个 ciclo 获取并创建一个表。我从表 ciclos 中获得“ciclos”,每个 ciclo 都有来自表 parciales_inst 的“parciales”,在 parciales_inst 表中我与 ciclos 没有关系。
猜你喜欢
  • 2012-11-22
  • 2023-03-13
  • 2015-03-28
  • 2013-02-06
  • 1970-01-01
  • 2012-07-21
  • 2013-05-21
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多