JSF2プロジェクトで問題が発生しました。JSF 2の<h:selectBooleanCheckbox>からイベントが発生しません
私は順番に私のh:dataTable
は、チェックボックスh:selectBooleanCheckbox
が移入されますページonchange = "submit();"
でリフレッシュをtrigersドロップダウンボックスh:selectOneMenu
を持っています。
問題は私が得ないことですすべてValueChangeEvent
イベントのチェックボックスから - 私は最初のドロップダウン選択でチェックボックスがあったのと同じだけ多くのイベントを取得します。例えば:私はドロップダウンリストの値を変更しない
- 最初のケース:
- ページが作成され、私の最初のドロップダウンの選択は3つのチェックボックス、つまりテーブル内の3行が生成されます。私はすべてのチェックボックスを選択します。
- OKボタンを押すと、3
setNodeState
イベントが発生します。- ページが作成され、私の最初のドロップダウンの選択は3つのチェックボックス、表内のつまり3行を生成します:
- 第二の場合は、私は、ドロップダウンリストの値を変更します。
- 次に、ドロップダウンをクリックして、別のものを選択します。 10
MultiFileSelectMgmtBean.fileNames
があるので、テーブルには10個のチェックボックスがあります。私はすべてのチェックボックスを選択します。 - 私がOKを押した後、奇妙な事が起きました:3
setNodeState
イベントが発生しました.10とは思っていませんでした。ここで
xhtmlのコードです:
<tr>
<td>
<h:selectOneMenu
value = "#{MultiFileSelectMgmtBean.selectedLocationId}"
valueChangeListener = "#{MultiFileSelectMgmtBean.LocationChangeEvent}"
onchange = "submit();"
styleClass = "text" style="width: 250px;">
<f:selectItems
value = "#{MultiFileSelectMgmtBean.locationsListItems}"
var = "location"
itemValue = "#{location}"
itemLabel = "#{location.label}">
</f:selectItems>
</h:selectOneMenu>
</td>
</tr>
<tr>
<td>
<h:dataTable value="#{MultiFileSelectMgmtBean.fileNames}" var="filename">
<h:column>
<h:selectBooleanCheckbox value = "#{MultiFileSelectMgmtBean.fileMap[filename]}"
valueChangeListener = "#{MultiFileSelectMgmtBean.setNodeState}"
title = "#{filename}"
/>
<h:outputText value="#{filename}" styleClass="text"/>
</h:column>
</h:dataTable>
</td>
</tr>
なぜ、あなたが public void newListenerMethod(AjaxBehaviorEventイベント){} –
Daniel
をなぜ追加しないのかわかりません。 :-)私はすべてのコードをajaxに転送する準備が整いました。これは古いスタイルで行う必要があります。 – Danijel
jsf2上で、その特典を使用しない理由がない場合は、onchange = "submit();" jsf1にはいいです...代わりに、より良いf:ajaxのレンダリング= "@フォーム" .... – Daniel