これに非常によく似た多くの質問がありますが、解決策がわかりません。
次のコードはエラーを発生させませんが、意図したとおりに動作しません。3つの列が表示されます。
1列目は、2列目の編集可能フィールドをアクティブにするチェックボックスです。
3列目は行削除方式です
4列目は、次のページに移動するための1つのボタンです。
<h:column> <h:panelGroup id="editCol"> <f:facet name="header"> <h:outputText value="Edit" style="font-weight: bold"> </h:outputText> </f:facet> <h:selectBooleanCheckbox value="#{m.editable}" onclick="submit()"> <f:ajax execute="editCol :formId:dataId:authorCol" render="editCol :formId:dataId:authorCol" /> </h:selectBooleanCheckbox> </h:panelGroup> </h:column> <h:column> <h:panelGroup id="authorCol"> <f:facet name="header"> <h:outputText value="Label" style="font-weight: bold"> </h:outputText> </f:facet> <h:inputText value="#{m.author2displayed}" rendered="#{m.editable}" size="10"/> <h:outputText value="#{m.author2displayed}" rendered="#{not m.editable}"/> <h:commandButton value="save edits" rendered="#{m.editable}" onclick="submit()" action ="#{finalCheckBean.saveedits()}"> <f:ajax execute="authorCol" render="authorCol" /> </h:commandButton> </h:panelGroup> </h:column> <h:column> <h:panelGroup id="deleteCol"> <f:facet name="header"> <h:outputText value="delete row(s)" style="font-weight: bold"> </h:outputText> </f:facet> <h:selectBooleanCheckbox value="#{m.deleted}" onclick="submit()"/> <h:commandButton value="delete row(s)?" rendered="#{m.deleted}" onclick="submit()" action ="#{finalCheckBean.deleteRow()}"/> </h:panelGroup> </h:column> <h:column> <f:facet name="header"> <h:commandButton value="save changes" action="#{finalCheckBean.moveon}"/> </f:facet> </h:column> </h:dataTable>
最初の列のをチェックする
selectBooleanCheckbox
と、ボックスはチェックされますが、何も起こりません。実際には、2番目の列のコンポーネントの表示を切り替える必要があります。興味深いことに、ajaxを使用していない3番目の列をクリックすると、2番目の列が再レンダリングされ、手順1でティックアクションの効果を確認できます。
selectBooleanCheckbox
selectBooleanCheckbox
最初の列を正しく機能させるにはどうすればよいですか?