12

我一直在使用 ui:repeat 来生成表格。使用 ui:repeat 可以很容易地使用varStatus. 在调用支持 bean 来处理列表导航时,我依赖于 varStatus 中的行 ID,例如在列表中向上或向下移动项目。

现在我想创建一个复合组件,该组件构建一个可定制的表格,其中包含标记行、向上/向下移动等所需的所有功能。为此,ui:repeat 不起作用,因为我看不到方法处理不同数量的列;我需要在一个地方指定标题,在另一个地方指定正文(而且我还没有达到可以创建自定义组件的知识点)。因此,我继续使用数据表,因为使用这意味着将标题指定为与正文内容相同的位置。

效果很好,直到我注意到由于某种原因varStatus不再存在。我已经在不需要 a 的情况下处理列表演示文稿方面做了很多工作,datamodel而且我不想开始使用它。有什么方法可以在不使用的情况下获取当前行号,因为它显示在表格中datamodel

此外,我正在使用 viewScope,如果我理解正确,这意味着我无法将 dataTable 绑定到 bean。

4

1 回答 1

32

只需将表绑定到视图本身而不是 bean。

<h:dataTable binding="#{table}" ...>

然后你可以#{table.rowIndex}在需要的地方使用。例如

<h:column>#{table.rowIndex + 1}</h:column>

请注意,代码是原样的,EL 变量名称table完全由您选择。

也可以看看:

于 2013-01-31T19:14:17.040 回答