【问题标题】:PrimeNg p-column apply css in a td not workingPrimeNg p-column 在 td 中应用 css 不起作用
【发布时间】:2026-02-13 22:50:01
【问题描述】:

我正在使用 p-dataTable,我想在 td 中应用一种样式,但这种样式取决于字段的值,我不知道该怎么做。我的代码是:

<p-dataTable [value]="cars" resizableColumns="true" [responsive]="true" reorderableColumns="true">
  <p-column [styleClass]="carStyle" field="carDesc"></p-column>
  <p-column styleClass="ui-model-car" field="carModelDesc"></p-column>
  <p-column styleClass="ui-width-icon-car">
     <template let-col let-item="rowData" pTemplate type="body">
      <div data-toggle="tooltip" data-placement="left" title="{{item.typeCarDesc}}">
          <span class="icon-circle {{item.typeCarIcon}} {{item.carColor}}"></span>
      </div>
     </template>
  </p-column>
</p-dataTable>

carStyle 可以是空的或 ui-without-border-top 和我的 css:

td.ui-without-border-top {border-top-style: hidden;}

在我的 html 生成代码中,我没有看到 carStyle。我需要 td 中的样式。

【问题讨论】:

  • 请确认我是否正确理解了您的问题。如果变量 carStyle 不为空,您希望添加类 carStyle。如果 carStyle 为空,您希望添加类 ui-without-border-top?
  • 我想在 td 中添加类 'ui-without-border-top',变量 carStyle 为空或等于 'ui-without-border-top' 所以我想设置 [ styleClass]="carStyle" 但是代码html没有设置carStyle的值,但是如果我在一个div中把这个变量设置到模板中,代码html会设置carStyle的值''
  • 您是否尝试过使用 Angular 2 自定义选择器来设置组件内部样式? angular.io/docs/ts/latest/guide/…
  • 我不知道如何在这种情况下使用这些选择器,因为我需要将样式设置为一些 td 而不是表的所有 td。如果我将css放在列中的问题: [styleClass]="carStyle" 代码不会生成样式,但是如果我将类放入 div: class="{{item.carStyle}}" 代码生成样式,但我需要 td 中的样式而不是 div 中的样式

标签: css angular html-table primeng


【解决方案1】:

在这种情况下,请检查 carStyle 类是否已添加到您的&lt;td&gt;

我会毫无问题地展示我是如何做到这一点的:

在我的模板中:

<p-column styleClass="col-button">

还有我的 Scss:

table {
    tbody
    {
        td.col-button {
            text-align: center;
        }
    }
}

请参阅下面的屏幕截图,了解它在没有问题的情况下运行得如何:

请检查您的代码,然后重试。如果它不起作用,请发布您的问题。

【讨论】: