【问题标题】:SharePoint 2013 JSLink OnPostRender not working after adding SP.SOD.executeFuncSharePoint 2013 JSLink OnPostRender 在添加 SP.SOD.executeFunc 后不起作用
【发布时间】:2019-07-20 09:24:18
【问题描述】:

我使用 JSLink 为 SharePoint 2013 列表中的行着色

ExecuteOrDelayUntilBodyLoaded(function () {
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {

        RegisterModuleInit(_spPageContextInfo.siteServerRelativeUrl + "/SiteAssets/jsLink.js", Highlight); 
        Highlight();
    }
  });

});
function Highlight() {   

var HighlightFieldCtx = {};
HighlightFieldCtx.Templates = {};
HighlightFieldCtx.Templates.Fields = {};  

HighlightFieldCtx.OnPostRender =  postRenderHandler;     

 SPClientTemplates.TemplateManager.RegisterTemplateOverrides(HighlightFieldCtx);  
}


function postRenderHandler(ctx)
{

 var rows = ctx.ListData.Row;


 for (var i=0;i<rows.length;i++)
{
    // do stuff
    row.classList.add("Color");


}

}  

我需要添加 SP.SOD.executeFunc() 来激活 _spPageContextInfo。但是当我添加 SP.SOD.executeFunc() 时,没有按照 HighlightFieldCtx.OnPostRender = postRenderHandler 调用函数 postRenderHandler。 当我的 JS 和 CSS 上没有 SP.SOD.ExecuteFunc() 和静态链接时,我的代码和渲染将完全正常工作。你能帮我吗,如何用工作 _spPageContextInfo 制作正确的代码?

【问题讨论】:

  • 您是否只想为某些行添加颜色?您是否每隔一行着色只是为了更容易查看数据所属的行(颜色、无颜色、颜色等)?

标签: javascript sharepoint jslink


【解决方案1】:

试试这个:

<script type="text/javascript">

            SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function () {
                //alert(_spPageContextInfo.siteServerRelativeUrl);
                RegisterModuleInit(_spPageContextInfo.siteServerRelativeUrl + "/SiteAssets/jsLink.js", Highlight);
                Highlight();
            });

        function Highlight() {

            var HighlightFieldCtx = {};
            HighlightFieldCtx.Templates = {};
            HighlightFieldCtx.Templates.Fields = {};
            HighlightFieldCtx.OnPostRender =  postRenderHandler;
            SPClientTemplates.TemplateManager.RegisterTemplateOverrides(HighlightFieldCtx);
        }

        function postRenderHandler(ctx)
        {
            var rows = ctx.ListData.Row;
            alert('postRenderHandler');
        }
    </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多