我有以下代码,使用PrimeFaces 3.0.M3,Tomcat 7和Mojarra 2.1.3。
<p:dataGrid columns="1" var="answer" value="#{answersbysubject}">
<p:column>
<p:panel columns="1">
<h:outputText value="#{answer.question.name}" />
<p:dataGrid columns="5" var="selection" value="#{brain.selections}">
<p:column>
<h:panelGrid columns="1" styleClass="selections" id="mySelection">
<h:outputText value="#{selection.name}" />
<p:commandLink update="mySelection">
<p:graphicImage value="/img/CheckboxFull.png" rendered="#{selection == answer.selection}" />
<p:graphicImage value="/img/CheckboxEmpty.png" rendered="#{selection != answer.selection}" />
<f:setPropertyActionListener value="#{selection}" target="#{answer.selection}" />
</p:commandLink>
</h:panelGrid>
</p:column>
</p:dataGrid>
</p:panel>
</p:column>
</p:dataGrid>
抱歉,如果有点过于冗长......
关键是:我想要实现一个更好的5向复选框(像一组单选按钮一样工作)。
整个工作服务很好,除了当我点击另一个复选框时它只会重新点击我刚刚点击的复选框。也就是说,我看到两个已选中的复选框 - 在浏览器中执行F5刷新之前,旧复选框不会清除。
我尝试为每个标记提供ID,然后让commandLink全部更新,但除了当前复选框之外没有其他内容更新:( 在动态生成期间,表行的ID可能会混淆,这就是为什么没有其他标记可以被可靠地找到/识别以进行更新的原因?如果是这种情况,那么我只能更新当前表格行(不仅仅是现在的表格单元格,而是像现在这样......)的解决方案是什么?
非常感谢!