我使用素数扩展作为计时器。我在数据列表组件中显示多个计时器,并且这些数据列表组件显示在数据表的单元格中。
我用样式参数更改每个单元格的颜色,值来自 bean 值。对于每个单元格,背景颜色发生了变化,计时器单元格的背景颜色也发生了变化,但文本颜色没有改变。
<p:dataTable id="item_#{synopticLocationBean.id}" var="synopticIdBean" value="#{synopticLocationBean.synopticIdBeans}"
resizableColumns="false"
rendered="true"
rowIndexVar="rowIndex">
<p:column headerText="ID" style="background-color: #{synopticIdBean.backgroundColor}; color: #{synopticIdBean.foregroundColor};">
<h:outputText value="#{synopticIdBean.number}" />
</p:column>
<p:column headerText="Nom" style="background-color: #{synopticIdBean.backgroundColor}; color: #{synopticIdBean.foregroundColor};">
<h:outputText value="#{synopticIdBean.name}"/>
</p:column>
<p:column headerText="Chrono" rendered="#{dashboardView.manageChronometers}" style="background-color: #{synopticIdBean.backgroundColor}; color: #{synopticIdBean.foregroundColor};">
<p:dataList value="#{synopticIdBean.synopticCounterBeans}" var="synopticCounterBean" type="definition" class="data-zone">
<pe:timer id="timer_#{synopticLocationBean.id}"
forward="true"
timeout="10000"
formatFunction="return displayElapsedTimeForChrono_save('#{synopticCounterBean.name}',
'#{synopticCounterBean.startTime}',
'#{synopticCounterBean.pauseTime}',
'#{synopticCounterBean.endTime}',
'#{synopticCounterBean.counterValue}');"/>
</p:dataList>
</p:column>
</p:dataTable>
当我在计时器组件上设置样式参数时,出现以下错误: 解析/pages/dashboardgeneric/dashboardWip.xhtml 时出错:错误跟踪[行: 846] 属性 "style" 已为元素 "pe:timer" 指定
。看起来它应该可以工作,但计时器缺少文档中的样式和样式类属性,但它们应该在组件上。 我已经创建了一个票证来更新文档。
https://github.com/primefaces-extensions/primefaces-extensions.github.com/issues/733
我找到了一个解决方案,我在组件 pe:timer 中添加了一个样式,如下所示:
<p:dataList value="#{synopticIdBean.synopticCounterBeans}" var="synopticCounterBean" type="definition" class="data-zone">
<pe:timer id="timer_#{synopticLocationBean.id}"
forward="true"
timeout="10000"
formatFunction="return displayElapsedTimeForChrono_save('{synopticCounterBean.name}',
'#{synopticCounterBean.startTime}',
'#{synopticCounterBean.pauseTime}',
'#{synopticCounterBean.endTime}', '#{synopticCounterBean.counterValue}');"
style="color : #{synopticMainLocationIdBean.foregroundColor};"/>
</p:dataList>
从数据列表继承的背景色和前景色采用从数据列表声明的值。