在 SharePoint 中呈现列表
Render a list in SharePoint
我在 Sharepoint 列表中使用此代码在标题后面添加一个小图标。代码在文本后显示图标,但列表无法正常显示且无法访问,就像代码将其变成屏幕截图一样。
<script>
(function () {
var excludeRows = [0,2,3];
function renderListItemTemplate(renderCtx) {
if(excludeRows.indexOf(renderCtx.CurrentItemIdx) > -1)
{
return ''; //do not render row
} else {
var ret = renderCtx.CurrentItem.Title + "<img src='https://example.com/sites/ud07/HRM/Plaatjes/image.png'/>";
return ret;
}
return RenderItemTemplate(renderCtx);
}
function registerListRenderer()
{
var context = {};
context.Templates = {};
context.Templates.Item = renderListItemTemplate;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(context);
}
ExecuteOrDelayUntilScriptLoaded(registerListRenderer, 'clienttemplates.js');
})();
</script>
我需要更改什么才能使其成为 returns 列表正常显示的正常渲染函数?
马可
请参考以下演示:
(function () {
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function () {
var excludeRows = [0, 2];
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
OnPostRender: function (ctx) {
var rows = ctx.ListData.Row;
rows.forEach((item, index) => {
if (excludeRows.indexOf(index) == -1) {
var rowElementId = GenerateIIDForListItem(ctx, item);
var tr = document.getElementById(rowElementId);
let jqueryO = $(tr);
let tardiv = jqueryO.find("td>div[field='LinkTitle']");
tardiv.append("<img src='https://abc.sharepoint.com/sites/sbdev/SiteAssets/MicrosoftTeams-image.png'/>");
}
});
}
});
});
})();
结果:
我在 Sharepoint 列表中使用此代码在标题后面添加一个小图标。代码在文本后显示图标,但列表无法正常显示且无法访问,就像代码将其变成屏幕截图一样。
<script>
(function () {
var excludeRows = [0,2,3];
function renderListItemTemplate(renderCtx) {
if(excludeRows.indexOf(renderCtx.CurrentItemIdx) > -1)
{
return ''; //do not render row
} else {
var ret = renderCtx.CurrentItem.Title + "<img src='https://example.com/sites/ud07/HRM/Plaatjes/image.png'/>";
return ret;
}
return RenderItemTemplate(renderCtx);
}
function registerListRenderer()
{
var context = {};
context.Templates = {};
context.Templates.Item = renderListItemTemplate;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(context);
}
ExecuteOrDelayUntilScriptLoaded(registerListRenderer, 'clienttemplates.js');
})();
</script>
我需要更改什么才能使其成为 returns 列表正常显示的正常渲染函数?
马可
请参考以下演示:
(function () {
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function () {
var excludeRows = [0, 2];
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
OnPostRender: function (ctx) {
var rows = ctx.ListData.Row;
rows.forEach((item, index) => {
if (excludeRows.indexOf(index) == -1) {
var rowElementId = GenerateIIDForListItem(ctx, item);
var tr = document.getElementById(rowElementId);
let jqueryO = $(tr);
let tardiv = jqueryO.find("td>div[field='LinkTitle']");
tardiv.append("<img src='https://abc.sharepoint.com/sites/sbdev/SiteAssets/MicrosoftTeams-image.png'/>");
}
});
}
});
});
})();
结果: