【问题标题】:How to combine rowStyleClss and rowClasses in t:dataTable如何在 t:dataTable 中组合 rowStyleClss 和 rowClasses
【发布时间】:2020-02-27 09:27:55
【问题描述】:

我有三个 CSS 样式类。它们中的每一个都设置 JSF 数据表行的背景颜色。一个将行的颜色设为橙色 (rowHighlight),第二个将行着色为白色 (rowWhite),第三个将行着色为灰色 (rowGrey)。

当满足某个条件时,我希望表格行是橙色的。如果不满足条件,我希望行的颜色使用其他两个样式表在白色和灰色之间交替。最终结果应该有橙色、白色和灰色的行。

我读到 rowStyleClass 可以实现根据特定条件改变行的颜色。我读到 rowClasses 可以实现使行交替颜色。

我试过了:

rowStyleClass="#{holidayInfo.country == ‘France’ ? 'rowHighlight' : '’ }"
rowClasses="rowWhite,rowGrey"

但这导致所有行都是白色的。

我也试过了:

rowStyleClass="#{holidayInfo.country == ‘France’ ? 'rowHighlight' : 'rowWhite,rowGrey'}"

但这导致在满足条件时该行被着色为橙色,而所有其他行都是白色。

有谁知道这两者是否可以结合?我是 JSF 的新手。

【问题讨论】:

  • rowStyleClass 来自 PrimeFaces,rowClass 是 JSF 默认的。您使用的是 JSF 数据表还是 Primeface 数据表?
  • 对不起,我应该提到的。我正在使用 MyFaces ,它扩展了标准 JSF 并同时具有 rowClasses 和 rowStyleClass。
  • 同时使用这两个属性时生成的 HTML 是什么样子的?
  • 当我同时使用 rowStyleClass 和 rowClasses 时,HTML 表格的所有行都是白色的
  • 问题是生成的 html 的样子,而不是你在 ui 中看到的样子。

标签: css jsf tomahawk


【解决方案1】:

我已经设法解决了这个问题。

如果你想在同一个数据表中使用rowClasses和rowStyleClass,属性的顺序必须是rowClasses第一,rowStyleClass第二。

我将 rowStyleClass 放在首位,如果条件不满足,我将 styleClass 设置为 ''。如果发生这种情况,将样式类设置为 '' 后会忽略 rowClasses。 当我首先放置 rowClasses 时,它被执行并且行颜色在 white 和 gray 之间交替。属性 rowStyleClass 类没有被忽略,因为满足条件的行是橙色的。

感谢所有帮助我解决这个问题的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 2023-04-05
    • 2012-04-09
    相关资源
    最近更新 更多