Рендеринг JSLink на стороне клиента не работает в пользовательском списке
Мы используем SharePoint 2013 вместе с пользовательским списком, который имеет следующие свойства (проверено с помощью F12)
ctx.BaseViewID = 1;
ctx.ListTemplateType = 10050;
RenderListView(ctx19, 'WPQ2');
Я пытаюсь переопределить заголовок / титр, используя приведенный ниже код, однако метод postRenderHandler не вызывается - я не использую MDS
Обратите внимание, что я попытался включить SP.SOD.executeFunc, чтобы явно загрузить clienttemplates.js.
Также пытались заставить использовать BaseViewID = 99, как указано в этом блоге http://www.myfatblog.co.uk/index.php/2013/09/listview-web-part-issues-with-jslink-and-display-templates-a-solution/
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
var contextFiledContext = {};
contextFiledContext.Templates = {};
contextFiledContext.Templates.Fields = {
"Titel": { "View": postRenderHandler },
"Title": { "View": postRenderHandler }
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(contextFiledContext);
});
function postRenderHandler(ctx){
var link = ctx.CurrentItem["FileLeafRef"];
var value = ctx.CurrentItem["Title"]
var html="";
if(value!=""){
var html= "<a href='"+link+"'>"+value+"</a>";
}
return html;
}
// Now override the RenderListView once the ClientTemplates.JS has been called
ExecuteOrDelayUntilScriptLoaded(function(){
//Take a copy of the existing Microsoft Definition of RenderListView
var oldRenderListView = RenderListView;
//Now redefine RenderListView with our override
RenderListView = function(ctx,webPartID)
{
if (ctx.wpq == 'WPQ2')
{
ctx.BaseViewID = 99;
}
else if (ctx.wpq == 'WPQ3')
{
ctx.BaseViewID = 98;
}
else if (ctx.wpq == 'WPQ4')
{
ctx.BaseViewID = 97;
}
//now call the original RenderListView
oldRenderListView(ctx,webPartID);
}
},"ClientTemplates.js");