0

有没有人找到一种方法来默认将 jslink URL 添加到列表中,而不是在创建列表时手动将 URL 添加到每个列表中?最终,我们希望为编辑者可以访问的每种类型的应用程序设置默认的 jslink。

4

2 回答 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 回答