CRM视图行按优先级着色:Web Resource方案不可用,求替代解决办法
替代解决方案:给CRM视图行按优先级标记颜色
方案1:利用CRM内置的条件格式(适用于较新版本Dynamics 365)
如果你的CRM是Dynamics 365 Online/最新本地版本,可直接通过视图的条件格式功能实现:
- 打开目标视图的编辑界面
- 点击顶部菜单栏的条件格式按钮
- 新建规则:
- 规则名称:高优先级标记
- 条件:优先级字段等于「高」
- 格式设置:将行背景色设为红色
- 重复上述步骤,分别为「正常」(黄色)、「低」(绿色)创建对应规则
- 保存视图后刷新即可生效
方案2:全局JavaScript网页资源(适用于多数CRM版本)
如果内置条件格式不可用,可通过全局JS资源绑定视图加载事件来动态修改行样式:
- 在CRM中创建一个新的Web Resource,类型选JavaScript,粘贴以下代码:
function highlightRowsByPriority() { // 获取视图中的所有数据行 var rows = document.querySelectorAll(".ms-crm-List-Row"); rows.forEach(function(row) { // 替换为你的优先级字段的内部名称,示例为系统默认优先级字段prioritycode var priorityCell = row.querySelector("[data-attribute='prioritycode']"); if (priorityCell) { var priorityValue = priorityCell.innerText.trim(); switch(priorityValue) { case "高": row.style.backgroundColor = "#ffcccc"; // 浅红色 break; case "正常": row.style.backgroundColor = "#fff3cd"; // 浅黄色 break; case "低": row.style.backgroundColor = "#d4edda"; // 浅绿色 break; } } }); } // 绑定到视图加载完成事件 document.addEventListener("DOMContentLoaded", function() { highlightRowsByPriority(); // 处理分页加载的情况 setInterval(highlightRowsByPriority, 1000); });
- 将这个Web Resource添加到CRM的全局脚本中,或者绑定到目标实体的表单加载事件(确保视图加载时脚本能执行)
- 刷新视图后,行背景色会根据优先级自动变化
方案3:自定义字段+业务规则(间接实现)
- 在目标实体中新建一个单行文本字段(比如命名为「优先级颜色标记」)
- 创建业务规则:
- 当优先级等于「高」时,将「优先级颜色标记」设为「#ffcccc」
- 当优先级等于「正常」时,设为「#fff3cd」
- 当优先级等于「低」时,设为「#d4edda」
- 编辑目标视图,添加「优先级颜色标记」字段,然后在字段属性中设置背景色取自字段值(部分CRM版本支持此设置)
- 最后将该字段设为隐藏,仅保留背景色效果
内容的提问来源于stack exchange,提问作者basant reda
相关产品推荐
相关产品推荐

