SharePoint 2013-使用JavaScript覆盖字段

时间:2018-10-05 12:05:48

标签: javascript sharepoint sharepoint-2013 csr

最近我被分配对SharePoint网站进行一些简单的更改。

少数初始条件:
-2013年的分享点
-应该使用JS
实现 -我具有JS的基本知识,没有任何SharePoint经验

我有一个JS文件与页面上的视图链接。 当我使用alert('a')之类的简单工具进行测试时,它就可以正常工作。

但是,当我尝试操纵视图中的某物时-例如 Priority 列中的突出显示值,我就没有运气。

这是我使用的代码:

(function () { 

    // Create object that have the context information about the field that we want to change it's output render  
    var priorityFiledContext = {}; 
    priorityFiledContext.Templates = {}; 
    priorityFiledContext.Templates.Fields = { 
        // Apply the new rendering for Priority field on List View 
        "Priority": { "View": priorityFiledTemplate } 
    }; 

SPClientTemplates.TemplateManager.RegisterTemplateOverrides(priorityFiledContext); 

})(); 

// This function provides the rendering logic for list view 
function priorityFiledTemplate(ctx) {

    var priority = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; 

    // Return html element with appropriate color based on priority value 
    switch (priority) { 
        case "(1) High": 
            return "<span style='color :#f00'>" + priority + "</span>"; 
            break; 
        case "(2) Normal": 
            return "<span style='color :#ff6a00'>" + priority + "</span>"; 
            break; 
        case "(3) Low": 
            return "<span style='color :#cab023'>" + priority + "</span>"; 
    }
}

这是我的观点:

enter image description here

我已经在启用和禁用MDS的情况下进行了尝试。我尝试将代码锚定在脚本编辑器中,并将其作为html Web部件的一部分。我实际上是从MS网站上获得的示例代码,在这里工作得很好:https://code.msdn.microsoft.com/office/Client-side-rendering-code-0a786cdd

希望获得一些帮助,将代码上传到母版页时,我尝试了不同的属性设置,并尝试将其放在其他目录中,但实际上没有任何作用。

1 个答案:

答案 0 :(得分:0)

挖掘一段时间后,发现尽管列名称似乎是 Priority ,但它只是一个显示名称。
检查HTML源代码后,发现它的实际名称是 _x007a_it4