我正在使用Primefaces 5.3中的selectManyMenu小部件来显示用户可以在每个应用中拥有的角色列表。
<p:outputLabel value="Roles:" rendered="#{controller.enabledApp[app.id] and not empty app.roles}"/>
<p:selectManyMenu converter="#{roleConverter}" var="r" filter="true" filterMatchMode="contains" showCheckbox="true"
rendered="#{controller.enabledApp[app.id] and not empty app.roles}" value="#{app.selectedRoles}">
<f:selectItems value="#{app.roles}" var="role" itemLabel="#{role.name}" itemValue="#{role}"/>
<p:column>
<h:outputText value="#{r.name}"/>
</p:column>
</p:selectManyMenu>
问题是,当我从数据库预加载这些角色时,填充app实体的selectedRoles字段,Primefaces将ui-state-highlight CSS类添加到用于表示这些所选角色的表行中,但它没有' t将ui-state-active添加到代表复选框的div。
这就是我得到的:
<tr class="ui-selectlistbox-item ui-corner-all ui-state-highlight" style="">
<td>
<div class="ui-chkbox ui-widget">
<div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default">
<span class="ui-chkbox-icon ui-icon ui-icon-check ui-c"/>
</div>
</div>
</td>
<td>Admin</td>
</tr>
这就是我应该得到的:
<tr class="ui-selectlistbox-item ui-corner-all ui-state-highlight" style="">
<td>
<div class="ui-chkbox ui-widget">
<div class="ui-chkbox-box ui-widget ui-corner-all ui-state-default ui-state-active">
<span class="ui-chkbox-icon ui-icon ui-c ui-icon-check"/>
</div>
</div>
</td>
<td>Admin</td>
</tr>
当父tr具有ui-state-highlight类时,我可以更改CSS以显示已选中的复选框,但我更愿意解决问题。
这可能是Primefaces中的错误吗?我有一些我不知道的错误吗?