有没有人找到一种方法,在默认情况下自动将jslink URL添加到列表中,而不是在创建列表时手动将URL添加到每个列表中?最终,我们希望为编辑器可以访问的每种类型的应用程序提供默认的jslink。
发布于 2017-01-25 15:44:11
是的,Chris O‘’Brien完美地描述了这一点:http://www.sharepointnutsandbolts.com/2013/01/using-jslink-to-change-ui-of-sharepoint_20.html
小故事-您应该创建列表模板并在其中定义jslink,这样所有基于此模板的列表都将具有js链接。如果你因为任何原因不想把列表和模板关联起来,你应该看看事件接收器。(用于列出已创建的事件。)
发布于 2017-09-23 02:22:11
另一种解决方案是编写自己的代码来更新所有页面。在此页面上,Tobias Zimmergren显示了使用PowerShell更新JSLink的代码:PowerShell: Configure the JSLink property of a Web Part
我个人使用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();
}
}
}https://stackoverflow.com/questions/41833770
复制相似问题