列表中包含大量文本,显示前5行文本后跟Read more链接会很不错。我已经看到了Sharepoint 2010的这个例子,但2013年没有。有什么想法吗? /安德烈亚斯
答案 0 :(得分:0)
由于客户端呈现(CSR)是SharePoint 2013中的默认呈现模式,因此下面将演示如何自定义“正文”字段。
假设Announcements
列表包含Body
列。以下示例演示如何截断 Body
字段的内容并显示Read more
链接
<强>解决方案强>
一个。创建一个渲染模板,让它命名为Announcemets.js
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
function bodyFieldRenderer(ctx) {
var item = ctx.CurrentItem;
var headline = $(ctx.CurrentItem.Body).text().substring(0,200);
return String.format('{0}<br/><a href="{1}&ID={2}" class="ms-accentText">Read more...</a>',headline, ctx.displayFormUrl,ctx.CurrentItem.ID);
}
function init() {
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates: {
Fields: {
"Body": {
View:bodyFieldRenderer,
}
}
}
});
}
RegisterModuleInit(SPClientTemplates.Utility.ReplaceUrlTokens("~siteCollection/Style Library/announcements.js"), init);
init();
});
B中。将JavaScript文件上传到Site Assets
库
℃。在编辑模式下打开页面并指定Web部件JS Link
属性:
~sitecollection/SiteAssets/announcements.js
答案 1 :(得分:0)
谢谢您-在SharePoint Online中为我工作-但在公告上方必须有一个“脚本编辑器” Web部件,其中包含jquery脚本引用(以及下载并保存在该位置的jquery):>
<script language="javascript" src="~siteCollection/SiteAssets/scripts/jquery.min.js" type="text/javascript"></script>
<script language="javascript" src="~siteCollection/SiteAssets/scripts/jquery.SPServices.min.js" type="text/javascript"></script>