【发布时间】:2017-06-30 09:39:53
【问题描述】:
我得到了一个带有自定义布局 selectoneradio 的数据表。它在第一行之后没有提交正确的值。
这是数据表:
<h:form id="dataTableForm">
<br />
<p:dataTable id="absenceTable" var="absence" widgetVar="absenceTable"
value="#{adminController.absenceList}" rowIndexVar="rowIndex"
emptyMessage="Keine Absenzen mit ausstehender Genehmigung gefunden"
style="width:70%;margin-left:15%;margin-right:15%;margin-bottom:20px;margin-top:10px;"
rowKey="#{absence.id}" rows="30" paginator="true"
paginatorPosition="bottom" paginatorAlwaysVisible="false"
paginatorTemplate="{PageLinks}" sortBy="#{absence.startDate}"
sortOrder="descending"
filteredValue="#{adminController.filteredAbsences}">
<f:facet name="header">Mitarbeiterabsenzen mit ausstehender Genehmigung</f:facet>
<p:column>
<p:selectOneRadio id="action" value="#{absence.status}" required="false"
layout="custom" >
<f:selectItem itemValue="PENDING" noSelectionOption="true" />
<f:selectItem itemValue="APPROVED" />
<f:selectItem itemValue="REJECTED" />
<p:ajax event="valueChange" immediate="true" listener="#{adminController.checkBoxListener}" />
</p:selectOneRadio>
</p:column>
<p:column width="20">
<p:radioButton for="action" itemIndex="0" />
</p:column>
<p:column width="20">
<p:radioButton for="action" itemIndex="1" />
</p:column>
<p:column width="20">
<p:radioButton for="action" itemIndex="2" />
</p:column>
<f:facet name="footer">
<p:commandButton value="Speichern"
action="#{adminController.save()}" update="absenceTable" />
</f:facet>
</p:dataTable>
</h:form>
行索引和缺席循环变量在数据表上定义。
它们都采用相同的形式。
问题是,不知何故,它只适用于第一行。其他行提交“on”而不是值。我在生成的 html 中发现它们没有像第一行中的单选按钮一样提供值标签:
我想这将是一个愚蠢的语法问题或其他什么......这是我调试点击除第一行之外的任何内容:
我在 PF 5.2 上运行
【问题讨论】:
-
首先删除单选按钮的“生成”ID。他们应该自动获得他们的“索引”前缀。并且总是尝试发布minimal reproducible example。 “循环”现在不可见
-
删除 id 没有帮助.. 我更新了这个问题
-
并尝试将
for="dataTableForm:absenceTable:#{rowIndex}:action"更改为for="action"。 JSF 会为您处理索引。 (除了widgetId)但那是PF,而不是JSF -
顺便说一句,您使用的是什么 PF 版本?你也可以发布一个最小的bean,这样你的问题就变成了minimal reproducible example,我可以很容易地尝试重现
-
一个简单的版本,
<p:dataTable id="absenceTable" var="absence" value="#{adminController.absenceList}" rowIndexVar="rowIndex">与您在 PF 6.1 上为我工作的列类似...(未在 5.2 上测试,因为我的个人展示不再在该版本上运行)。所以问题出在您使用的版本或不可见的代码中或数据表上的附加属性中。这是我能提供的所有信息……干杯。
标签: primefaces jsf-2 selectoneradio