【发布时间】:2022-08-20 04:16:22
【问题描述】:
我有一个包含 2 列的 dataGrid 和一个其中的 panelGrid,它可以正确显示数据,但它会在更改行之前填充两列。我需要它用列表内容的一半填充第一列,然后才转到第二列并用其余内容填充它。它现在是一个偶数的静态列表,但如果它可以使用一个动态大小的列表来完成,并且可能有奇数个值,那将是最好的。 SO中有一个答案表明asp有一个repeatcolumn标签(如果我理解正确的话)可以满足我的需求。有没有办法在jsf中使用richfaces?
<fieldset>
<legend>Select topics:</legend>
<rich:dataGrid value=\"#{registerForm.topics}\"
var=\"topic\"
columns=\"2\">
<h:panelGrid columns=\"2\" width=\"430px\"
columnClasses=\"checkTopic,labelTopic\" border=\"0\">
<h:selectBooleanCheckbox id=\"checkTopic\"
align=\"left\"
value=\"#{registerForm.SelectedTopic}\"
disabled=\"#{not registerForm.ActiveRegister}\"/>
<h:outputLabel value=\"#{topic.description}\"
for=\"checkTopic\" />
</h:panelGrid>
</rich:dataGrid>
<h:panelGroup rendered=\"#{empty registerForm.topics}\"
style=\"color: red;\">
No topics registered.
</h:panelGroup>
</fieldset
我想我应该使用 ui:repeat,但不知道如何使用。我尝试使用 dataList 并将列表分成两部分,每部分显示在单独的行中,但看起来不太好,而且代码感觉过于复杂。
this question 也与我的相同,但答案与所需内容并不完全对应,我无法发表评论,因为 50 声望。
我需要:
价值 1 价值 3
价值 2 价值 4
使用我拥有的代码(和答案),结果是:
价值 1 价值 2
价值 3 价值 4