如何使用 VS 2013 在 SharePoint Online 中创建列表模板

how to create a list template in SharePoint online using VS 2013

我将使用 VS 在 SPO 中创建一些声明性项目。我知道如何通过 UI 创建它,我想以编程方式创建。正如我所做的一些研究,有 3 种方法。 首先是通过 SP 托管应用程序(加载项),然后在主机网站上授予管理权限,以在其父网站上创建一些列表。 这是文章:http://www.sharepointnadeem.com/2013/12/sharepoint-2013-apps-access-data-in.html 这种方法不好,因为 App web 不应在其主机 web 上应用任何更改。 其次是通过沙盒解决方案。一旦我尝试使用 SPO 站点 URL 创建沙盒解决方案,我将收到一条错误消息,指出无法通过 VS 连接到远程站点。所以我必须进入本地 SP URL 来创建沙盒解决方案。然后我应该以声明方式创建列表模板并将其部署并发布到我的 SPO 环境。这是解释步骤的文章:http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2012/01/10/how-to-use-visual-studio-11-to-publish-solutions-to-sharepoint-online.aspx 我使用这种方法时遇到的问题是,一旦我在本地开发机器中开发列表模板,我就无法访问位于 SPO 中的托管元数据列。 第三种方法是在 App web 中创建列表或内容类型或模板,这不是我的情况。这已在本文中解释: sharepoint-journey.com/sharepoint-list-in-sharepoint-hosted-app.html 这里的问题是,我想在我的站点(主机站点)而不是应用程序网站(子站点)中使用该模板

我的问题是:我想使用 VS 2013 在我的 SPO 环境中提供一些列表模板。这样做的最佳方法是什么?我该怎么做?请给我一步一步的指导。

谢谢

您绝对想采用应用程序(加载项)方式。在主机 Web 上设置您的列表是可能的,并且在许多情况下更可取,然后仅将应用程序 Web 用于用户界面,或者如果您根本不想使用它:只需让加载项执行创建列表、列和内容类型的繁重工作。

这里重要的是您在代码中指定您希望在主机 Web 而不是 App Web 上创建列表。为此,您需要在您的应用中包含一个权限请求。安装后,该应用程序将询问安装它的用户是否可以访问主机 Web。这是通过在 AppManifest.xml 文件中设置相关范围来完成的,然后在权限下进行设置:[您的范围] - [权限级别] 您可以在此资源中阅读更多相关信息:https://msdn.microsoft.com/en-us/library/office/fp142383.aspx

然后类似于此代码的内容将允许您在您的主机网站上创建一个列表。请记住,即使您删除了您的应用,此列表仍将在主机网站上可用。

    oApp.install.addList = function (listName) {

        var listCreationInfo = new SP.ListCreationInformation();
        listCreationInfo.set_title(listName);
        listCreationInfo.set_templateType(SP.ListTemplateType.genericList);
        var myNewList = hostcontext.get_web().get_lists().add(listCreationInfo);
        var dfd = $.Deferred();

        context.load(myNewList);
        context.executeQueryAsync(function () {
            var listCreated = true;
            console.log("[" + listName + "]" + " added to hostweb");
            if (listCreated) dfd.resolve();
        }, oApp.onFail
        );

    return dfd.promise();
};

我还在我的博客上写过关于在您的列表中创建某些类型的列。请随时在此处查看:http://bayerlein.se/how-to-create-host-web-lists-with-certain-columns-in-your-sharepoint-add-in-the-nice-way/