有没有人找到一种方法来默认将 jslink URL 添加到列表中,而不是在创建列表时手动将 URL 添加到每个列表中?最终,我们希望为编辑者可以访问的每种类型的应用程序设置默认的 jslink。
问问题
750 次
2 回答
0
另一种解决方案是编写自己的代码来更新所有页面。在此页面上,Tobias Zimmergren显示了使用 PowerShell 更新 JSLink 的代码: PowerShell:配置 Web 部件的 JSLink 属性
我个人使用 C# CSOM 来更新所有请求页面上的 JSLink。这是在一个页面上更新 JSLink 的示例代码(为简单起见,我已经删除了异常处理和所有非快乐路径逻辑):
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.WebParts;
void UpdateWebPart(ClientContext webpartContext, string RelativeUrl, string JSLink)
{
File page = webpartContext.Web.GetFileByServerRelativeUrl(RelativeUrl);
LimitedWebPartManager wpm = page.GetLimitedWebPartManager(PersonalizationScope.Shared);
webpartContext.Load(page);
webpartContext.Load(wpm.WebParts, wps => wps.Include(w => w.WebPart.Title, w => w.WebPart.Properties));
webpartContext.ExecuteQuery();
if (wpm.WebParts.Count > 0)
{
// You can find your WebPart inside wpm.WebParts e.g. by Title. On each page I have only 1 WebPart, so I just take the first.
WebPartDefinition wpd = wpm.WebParts[0];
WebPart myWP = wpd.WebPart;
if ((string)myWP.Properties["JSLink"] != JSLink)
{
myWP.Properties["JSLink"] = JSLink;
wpd.SaveWebPartChanges();
webpartContext.ExecuteQuery();
}
}
}
- webpartContext是之前创建的 SharePoint ClientContext
- RelativeUrl类似于:“/Lists/Sample%20Tasks/AllItems.aspx”
- JSLink是您要更新的 WebPart 的 JSLink 的新值
于 2017-09-22T18:22:10.817 回答
0
是的,Chris O'Brien 在这里完美地描述了这一点:http: //www.sharepointnutsandbolts.com/2013/01/using-jslink-to-change-ui-of-sharepoint_20.html
短篇小说 - 您应该创建列表模板并在那里定义 jslink,因此基于此模板的所有列表都将具有 js 链接。如果您出于任何原因不想将列表与模板相关联,则应查看事件接收器。(对于列表创建的事件。)
于 2017-01-25T07:44:11.180 回答