为每个<rich:datatable>行分配唯一的客户端ID?</rich:datatable>

时间:2010-05-19 15:07:34

标签: java jsf seam richfaces

我在使用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>

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

1 个答案:

答案 0 :(得分:1)

查看<rich:componentControl />标记。

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

例如:

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