代码之家  ›  专栏  ›  技术社区  ›  amorfis

使元素在JSF2中的Ajax上可见

  •  0
  • amorfis  · 技术社区  · 14 年前

    我有 dataTable 在我的页面。最初我希望它被隐藏,并在通过Ajax请求获取数据后显示。我知道如何获取数据并将其放入表中,但我不知道如何显示隐藏的表。代码如下:

    <h:commandButton value="aa">
      <f:ajax execute="from to validTo" render="transportOffers"/>
    </h:commandButton>
    <p:dataTable id="transportOffers" value="${cargoOffer.transportsForCargo}" var="transport">
      <p:column>
        <h:outputText value="${transport.company}"/>
      </p:column>
    </p:dataTable>
    

    表最初是可见的,即使它是空的。如果我设置 rendered="false" 它是不可见的,并且在Ajax请求之后也是不可见的。

    我如何才能使它最初隐藏起来,并在填充数据后显示出来?

    2 回复  |  直到 13 年前
        1
  •  2
  •   Brian Leathem    14 年前

    您可以尝试根据列表的大小有条件地呈现数据表:

    rendered = "#{cargoOffer.transportsForCargo.size() != 0}"
    
        2
  •  1
  •   canadian_scholar Boris    13 年前

    我想如果 rendered=false 然后元素就不会被创建,所以Ajax请求找不到它。