我在Seam中使用UI相对较新,因此我希望在下面的示例中可以简单地替换UNIQUE_ID的三个实例。

目的是要有一个<rich:dataTable />,其中每一行都可以显示/隐藏具有有关特定对象实例的更多详细信息的<rich:modalPanel />

<rich:dataTable var="object" value="#{bean.myObject}">
  <rich:column>
    <h:outputText value="#{object.summary}" />
  </rich:column>

  <rich:column>
    <a onclick="Richfaces.showModalPanel('UNIQUE_ID');" href="#">Show Details in ModalPanel</a>
    <a4j:form>
      <rich:modalPanel id="UNIQUE_ID" >
        <a onclick="Richfaces.hideModalPanel('UNIQUE_ID');" href="#">Hide This ModalPanel</a>
        <h:outputText value="#{object.details}" />
      </rich:modalPanel>
    </a4j:form>
  </rich:column>
</rich:dataTable>


如果我只有一对link / modalPanel对,这显然是微不足道的,但是我不知道在<rich:dataTable />的迭代范围内该怎么做。另外,如果进一步使事情复杂化,该页面还将包含许多<rich:dataTable />,每个实现此行为。

最佳答案

看一下<rich:componentControl />标签。

使用attachTo来“绑定”事件以使用for属性显示要弹出的modalPanel。

例如:

<h:outputLink id="modalPanelLink" value="#">Show Details
    <rich:componentControl attachTo="modalPanelLink" for="modalPanelId" event="onclick" operation="show" />
</h:outputLink>

关于java - 为每个<rich:dataTable/>行分配唯一的客户端ID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2866757/

10-12 03:04