1

VS を使用して、SPO でいくつかの宣言型アイテムを作成します。プログラムで作成したいので、UI を介して作成する方法を知っています。調べてみたところ、3つの方法があります。まず、SP がホストするアプリ (アドイン) を使用して、ホスト Web で管理権限を付与し、親サイトにリストを作成します。記事は次のとおりです。 http://www.sharepointnadeem.com/2013/12/sharepoint-2013-apps-access-data-in.html アプリ Web はそのホスト Web に変更を適用してはならないため、このアプローチは適切ではありません。2 つ目は、サンドボックス ソリューションを使用する方法です。SPO サイト URL を使用してサンドボックス ソリューションを作成しようとすると、VS 経由でリモート サイトに接続できないというエラーが表示されます。そのため、サンドボックス ソリューションを作成するには、ローカル SP の URL を入力する必要があります。次に、リスト テンプレートを宣言的に作成し、展開して SPO 環境に公開する必要があります。手順を説明する記事は次のとおりです。 sharepoint-online.aspx このアプローチの問題は、ローカル開発マシンでリスト テンプレートを開発すると、SPO にある管理されたメタデータ列にアクセスできないことです。3 番目のアプローチは、私の場合ではないアプリ Web でリストまたはコンテンツ タイプまたはテンプレートを作成することです。これはこの記事で説明されています: sharepoint-journey.com/sharepoint-list-in-sharepoint-hosted-app.html ここでの問題は、そのテンプレートをアプリ Web サイトではなく、自分のサイト (ホスト サイト) に配置したいということです。 (サブサイト)

私の質問は、VS 2013 を使用して、SPO 環境でいくつかのリスト テンプレートを提供したいということです。それを行うための最良の方法は何ですか? どうすればそれを行うことができますか?手順を追って教えてください。

ありがとうございました

4

1 に答える 1

2

あなたは間違いなくアプリ(アドイン)の方法に行きたいと思っています。ホスト Web でリストを設定し、アプリ Web をユーザー インターフェイスとして使用することは可能であり、多くの場合はそれをお勧めします。または、まったく使用したくない場合は、アドインにリスト、列、およびコンテンツ タイプを作成する際の重労働。

ここで重要なことは、アプリ Web ではなくホスト Web でリストを作成することをコードで指定することです。これを機能させるには、アプリにパーミッション リクエストを含める必要があります。インストール時に、アプリはホスト Web へのアクセス許可を持っているかどうかをインストールするユーザーに尋ねます。これを行うには、AppManifest.xml ファイルで関連するスコープを設定し、[アクセス許可: [スコープ] - [アクセス許可レベル]] で設定します。これについて詳しくは、https://msdn.microsoft のリソースを参照してください。 com/en-us/library/office/fp142383.aspx

次に、このコードのようなものを使用すると、ホスト Web にリストを作成できます。アプリを削除しても、このリストは引き続きホスト Web で利用できることに注意してください。

    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/

于 2015-11-04T07:49:18.353 に答える