0

私はこのエラーやさまざまな解決策に精通していますが、これには頭を悩ませています。JavaScript オブジェクト モデルを使用して、特定のフォルダー内のすべてのファイルのすべてのリストを取得しています。以下のコードの getEnumerator でエラーが発生します。コードを最小限に抑えました。

function getFilesInFolder() { 
    var folderServerRelativeUrl = folderPath + ID;
    var context = new SP.ClientContext.get_current();
    var web = context.get_web();
    var list = web.get_lists().getByTitle(documentLibraryName);
    var query = SP.CamlQuery.createAllItemsQuery();
    query.set_folderServerRelativeUrl(folderServerRelativeUrl);

    //Update "web part" link
    $("#doclink").attr('href',folderServerRelativeUrl);
    files = list.getItems(query)
    context.load(files, 'Include(Id)');
    context.executeQueryAsync(Function.createDelegate(this, this.OnSuccess), Function.createDelegate(this, this.OnFailure));
}

function OnSuccess()
{       
//ERROR Next Line:                                   
    var listItemEnumerator = this.files.getEnumerator();
    var table = $("#attachments");


    while (listItemEnumerator.moveNext())  
    {                                    
        console.log("Found a file");
    }                                         
}

$(document).ready(function(){ //その他のコード... ExecuteorDelayUntilScriptLoaded(getFilesInFolder,"sp.js"); });

私はこれについて多くのバリエーションを試しましたが、以前は機能していました(サーバー側またはクライアント側のどちらが変更されたのかわかりません)。

4

2 に答える 2

1

明らかなエラーが見られなかったので、あなたのコードを試してみましたが、うまくいきました。スウェーデン語で機能するように、folderServerRelativeUrl をハードコーディングしました。「/sites/intranet/dokument」はルート Web であり、「Documents」フォルダーです。

ブラウザで "sitecollection/_api/web/getFolderByServerRelativeUrl('/path/to/folder/')" を試して、使用している URL が正しいかどうかを確認できます。

onsuccess にブレークポイントを設定し、コンソールで files.get_count() を見て、結果があるかどうかを確認することもできます。

あなたの負荷は大丈夫ですので、心配しないでください!

function getFilesInFolder() { 
        var folderServerRelativeUrl = "/sites/intranet/dokument";
        var context = new SP.ClientContext.get_current();
        var web = context.get_web();
        var list = web.get_lists().getByTitle("Dokument");
        var query = SP.CamlQuery.createAllItemsQuery();
        query.set_folderServerRelativeUrl(folderServerRelativeUrl);

        //Update "web part" link
       // $("#doclink").attr('href',folderServerRelativeUrl);
        files = list.getItems(query)
        context.load(files, 'Include(Id)');
        context.executeQueryAsync(Function.createDelegate(this, this.OnSuccess), Function.createDelegate(this, this.OnFailure));
    }

    function OnSuccess()
    {       
    //ERROR Next Line:                                   
        var listItemEnumerator = this.files.getEnumerator();
        var table = $("#attachments");


        while (listItemEnumerator.moveNext())  
        {                                    
            console.log("Found a file");
        }                                         
    }
于 2016-03-16T06:38:40.293 に答える