私はカスタムレイアウトselectoneradioでデータテーブルを得ました。それは、最初の行の後に正しい値を送信しません。Primefaces Datatableラジオボタン間違った値を送信
これはデータテーブルである:
<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で見られます私は、最初の行以外のものをクリックしてデバッグを取得:
Imはこのコードがsmooを実行PF5.2
のバグであるPF 5.2
「生成された」ラジオボタンのidを削除することから始めます。彼らは 'index'接頭辞automaticalltyを取得する必要があります。そして、常に[mcve]を投稿しようとします。 'looping'は現在表示されていません – Kukeltje
idsが削除されました。私は質問を厳しく更新しました。 –
for = "dataTableForm:absenceTable:#{rowIndex}:action"を "for =" action "'に変更してみてください。 JSFが索引付けを行います。 (widgetIdの以外にも)PFですが、JSFではなく – Kukeltje