JS链接-根据文本值更改单元格背景色

时间:2019-06-06 21:18:40

标签: javascript sharepoint

我在Sharepoint中有一个任务列表,其中的标题为“健康”。此列包含文本值“绿色”,“红色”,“黄色”,“蓝色”和“灰色”的下拉列表。

我想创建一个JS链接文件,以仅基于这些文本值来呈现单元格背景色。

我使用脚本编辑器Webpart成功地做到了这一点,但是我宁愿使用JS链接(在我的页面上少一个WebPart)来实现这一点。

下面是我插入脚本编辑器Webpart中的内容。我需要JS链接文件形式的类似内容。

<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Blue')");
        $Text.css("background-color", "#0000FF");
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Green')");
        $Text.css("background-color", "Green");
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Canceled')")
        $Text.css("background-color", "#e18620");
    });
</script>

我尝试了来自多个线程的多个代码片段,但没有任何效果。我所有其他的JS文件都可以正常工作,因此它是操作员错误或错误的代码。

1 个答案:

答案 0 :(得分:1)

以下代码供您参考。

<script type="text/javascript">
(function () { 
    // Create object that have the context information about the field that we want to change it's output render  
    var fieldContext = {}; 
    fieldContext.Templates = {}; 
    fieldContext.Templates.Fields = { 
        // Apply the new rendering for Available field on List View 
        "Health": { "View": fieldTemplate } 
    }; 
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(fieldContext);
})();  
// This function provides the rendering logic for list view 
function fieldTemplate(ctx) { 
    var health = ctx.CurrentItem[ctx.CurrentFieldSchema.Name];
    return "<span style='background-color: "+health+";'>" + health + "</span>";
}
</script>

enter image description here

引用:Colored output in list view with JSLink