Sharepoint 2013 列表 - 如何在 sharepoint 列表中有条件地给java脚本计算字段着色?

问题描述 投票:0回答:1

我有一些脚本,我一直在努力在一个 Sharepoint 2013 列表,它基本上是根据列表检查一些标准,然后返回 "待处理"、"完成"、"逾期 "或 "错过到期日"。

为了对照当前日期进行检查,我使用了一些在网上找到的Java脚本,并将其修改为适用于我的列表。唯一的问题是,我也在尝试给文本着色。

如果数值是 "逾期",则为红色。

如果数值为 "完成",则为绿色

其他情况为黑色。

代码正确地返回值,并将 "完成 "值显示为绿色,但我无法将 "逾期 "值显示为红色。

这是我的代码。

="<div style='text-align:left; color:"

&IF([Completed Date]="",""

&"<img src='/_layouts/images/blank.gif' onload=""{"

&"var SPday=new Date();"

&"SPday.setFullYear("&YEAR(DueDate)&","&MONTH(DueDate)-1&","&DAY(DueDate)&");"

&"var Days=Math.round((SPday.getTime()-new Date().getTime())/86400000);"

&"this.parentNode.innerHTML=((Days<0)?'red':'black');"

&"}"""

&"","green")

&"'>"

 

&IF([Completed Date]="",IF(ISBLANK(DueDate),"Missing Due date","<img src='/_layouts/images/blank.gif' onload=""{"

&"var SPday=new Date();"&"SPday.setFullYear("&YEAR(DueDate)&","&MONTH(DueDate)-1&","&DAY(DueDate)&");"

&"var Days=Math.round((SPday.getTime()-new Date().getTime())/86400000);"

&"this.parentNode.innerHTML=((Days<0)?'Overdue':'Pending');"

&"}"">"),"Complete")

&"</div>" 

可以这样做吗? 或者我应该尝试其他方法?

javascript html sharepoint-2013 sharepoint-list
1个回答
0
投票

对于这样复杂的逻辑,你最好使用CSR。

(function () {
    'use strict';

    var CustomCtx = {};

    /**
     * Initialization
     */
    function init() {

        CustomCtx.Templates = {};

        CustomCtx.Templates.Fields = {
            // update ChangeCompleted as your filed static name
            'ChangeCompleted': {
                'View': customDisplay
            }
        };

        // Register the custom template
        SPClientTemplates.TemplateManager.RegisterTemplateOverrides(CustomCtx);
    }

    /**
     * Rendering template
     */
    function customDisplay(ctx) {
        //your logic here
    }   

    // Run our intiialization
    init();

})();

链接供你参考。

https:/social.msdn.microsoft.comForumsofficeen-US154c3ed9-9e22-4fda-aba2-b7b12cc4a509changing-text-color-in-sharepoint-based-on-column-value?forum=sharepointdevelopment。

https:/www.codeproject.comArticles620110SharePoint-Client-Side-Rendering-List-Views

© www.soinside.com 2019 - 2024. All rights reserved.