You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular5中DevExtreme Grid设置行样式报错:e.rowElement.css不是函数

搞定DevExtreme Grid里的e.rowElement.css is not a function错误

嘿,这个问题我之前折腾过!报错的核心原因其实很直白:e.rowElement是原生DOM元素对象,不是jQuery包装后的实例,而.css()是jQuery独有的方法,直接调用自然会抛出类型错误。下面给你几个实用的解决思路:

方案1:用原生DOM的style属性(最推荐,不依赖额外库)

直接通过DOM元素的style属性来设置背景色,轻量又靠谱:

public setRowColor(e) {
  e.rowElement.style.backgroundColor = "#d6dde7";
}

方案2:如果项目已经用了jQuery,转成jQuery对象再调用

要是你的项目里已经引入了jQuery,也可以把原生DOM元素包装成jQuery对象后再用.css():

public setRowColor(e) {
  $(e.rowElement).css("background-color", "#d6dde7");
}

小提醒:得确保jQuery已经在Angular项目里正确配置好了,不然$会找不到哦。

方案3:用DevExtreme官方推荐的方式定制行样式

其实DevExtreme Grid本身就提供了更规范的行样式定制方案,比如用onRowPrepared事件来统一处理,这样代码更易维护。举个例子:
先在模板里给Grid绑定事件:

<dx-data-grid
  [dataSource]="yourDataSource"
  (onRowPrepared)="handleRowPrepared($event)"
>
  <!-- 你的列配置 -->
</dx-data-grid>

然后在组件类里实现处理逻辑:

handleRowPrepared(e) {
  // 先判断是不是数据行,再根据你的条件筛选特定项
  if (e.rowType === "data" && e.data.yourCondition) {
    e.rowElement.style.backgroundColor = "#d6dde7";
  }
}

这种方式更贴合DevExtreme的设计逻辑,后续修改样式规则也更方便。


内容的提问来源于stack exchange,提问作者OjamaYellow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:14:56