是否可以取消选择/取消选中项目是<p:selectOneRadio>还是<h:selectOneRadio/>
<h:selectOneRadio value="#{adminManageBroadcastController.selectedImage}" converter="#{broadcastImageConverter}">
<f:selectItems value="#{adminManageBroadcastController.fileUploadList}" var="image"
itemValue="#{image}"
itemLabelEscaped="false"
itemLabel="<img src="#{facesContext.externalContext.requestContextPath}#{image.url}" width="20" height="20" alt="broadcast_img">"
/>
</h:selectOneRadio>发布于 2013-07-23 22:05:21
如果我对你的问题理解正确的话,我认为下面这些应该会对你有所帮助。由于您希望在再次单击单选按钮时取消选中它,因此应该-正如您已经说过的-使用ajax侦听器,该侦听器在单选按钮的click上调用。但首先,您必须在每次更改时保存单选按钮的值,因此您必须添加另一个eventlistener,它将在change上提交单选按钮的值。当现在再次单击selected按钮时,您可以检查被单击的是哪个按钮,然后检查bean是否为selected按钮(如果它具有在bean上设置的值)。如果按钮是selected按钮,则将bean上的引用值设置为null并更新selectOneRadio。我并不确切地知道您的应用程序的结构是什么,所以我将尝试在代码中概述我的意思:
<h:selectOneRadio value="#{adminManageBroadcastController.selectedImage}" converter="#{broadcastImageConverter}">
<f:selectItems value="#{adminManageBroadcastController.fileUploadList}" var="image"
itemValue="#{image}"
itemLabelEscaped="false"
itemLabel="<img src="#{facesContext.externalContext.requestContextPath}#{image.url}" width="20" height="20" alt="broadcast_img">"
/>
<p:ajax event="change" process="@parent" partialSubmit="true"/>
<p:ajax event="click" process="@this" listener="#{adminManageBroadcastController.deselectImage()}" update="@parent"/>
</h:selectOneRadio>另一种选择是使用JavaScript完成整个操作。
https://stackoverflow.com/questions/17810192
复制相似问题