在 javascript 中检索共享点列表

Retrieve sharepoint List in javascript

我想在 JS 中检索共享点列表的标题。

我的函数 JS :

function retrieveAllListsAllFields() {
        var ctx = SP.ClientContext.get_current();
        var web = ctx.get_web();
        ctx.load(web, "Title");

    ctx.executeQueryAsync(
    Function.createDelegate(this, function(){
        var listTitle = web.get_title() + " Documents";
    }),
    Function.createDelegate(this, this.onQueryFailed)
    );

我检索了该列表,但我想在另一个函数中使用该列表以在组合框中获取我的图书馆的文档列表:

function initComboBox(fileslistBox, fileslistBoxDest, selectLibraryFileFieldResult, entityComboBox, yearComboBox, typeComboBox, library, entityValue, currentSiteUrl) {
    function retrieveAllListsAllFields() {
        var ctx = SP.ClientContext.get_current();
        var web = ctx.get_web();
        ctx.load(web, "Title");

        ctx.executeQueryAsync(
        Function.createDelegate(this, function(){
            var listTitle = web.get_title() + " Documents";
        }),
        Function.createDelegate(this, this.onQueryFailed)
        );

    var listBox;
    var i = 0;
    var reggie = /(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/;
    var entityComboBoxArray = new Array();
    var yearComboBoxArray = new Array();
    var typeComboBoxArray = new Array();

    addItemToArray(entityComboBoxArray, "", "", i);
    addItemToArray(yearComboBoxArray, "", "", i);
    addItemToArray(typeComboBoxArray, "", "", i);

    //init all combox 
    $().SPServices({
        operation: "GetListItems",
        webURL: currentSiteUrl,
        async: true,
        listName: listTitle,        
        CAMLViewFields: "<ViewFields><FieldRef Name='ID' /><FieldRef Name='FileLeafRef' /><FieldRef Name='File_x0020_Type' /><FieldRef Name='Title' /><FieldRef Name='Entity' /><FieldRef Name='Year_Document' /><FieldRef Name='Library' /></ViewFields>",
        CAMLQuery: "<Query><OrderBy><FieldRef Name='Title' /></OrderBy><Where><Eq><FieldRef Name='Library' /><Value Type='Choice'>" + library + " </Value></Eq></Where></Query>",
        completefunc: function (xData, Status) {
            $(xData.responseXML).SPFilterNode("z:row").each(function () {
                i++;
                //Add value to combox Array
                alert(listTitle);
                var tmpEntity = $(this).attr("ows_Entity");
                if (tmpEntity != null)
                    addItemToArray(entityComboBoxArray, $(this).attr("ows_Entity"), (tmpEntity).split("#")[1], i);

                var tmpYear = $(this).attr("ows_Year_Document");
                if (tmpYear != null)
                    addItemToArray(yearComboBoxArray, tmpYear, tmpYear, i);

                var tmpType = $(this).attr("ows_File_x0020_Type");
                if (tmpType != null)
                    addItemToArray(typeComboBoxArray, tmpType, tmpType, i);

                //if option already in Result Select, we move it to the destination RadListBox
                if (isOptionContainInSelect(selectLibraryFileFieldResult, $(this).attr("ows_Title")) == true)
                    listBox = fileslistBoxDest;
                else listBox = fileslistBox;
                addNewFilesItem($(this).attr("ows_ID"), $(this).attr("ows_FileLeafRef"), $(this).attr("ows_Title"), $(this).attr("ows_Entity"), $(this).attr("ows_Year_Document"), $(this).attr("ows_File_x0020_Type"), listBox);
            });


            //Add sorted array value to combobox 
            addArrayItemsToComboBox(entityComboBoxArray.sort(), entityComboBox);
            addArrayItemsToComboBox(yearComboBoxArray.sort(), yearComboBox);
            addArrayItemsToComboBox(typeComboBoxArray.sort(), typeComboBox);
            selectValueForComboBox(entityComboBox, entityValue);
            filterList(fileslistBox, entityComboBox, yearComboBox, typeComboBox);
        }
    }); 
    }
}

但是我无法检索图书馆中的文档。 文档未加载到我的组合框中。

不能使用这个"listName: listTitle"?

此致,

executeQueryAsync有两个参数:查询成功时给运行的回调函数,如果查询运行进入any则给运行的回调函数错误。

任何依赖查询运行成功的代码都应该放在里面成功回调函数(executeQueryAsync的第一个参数)。

ctx.executeQueryAsync(
Function.createDelegate(this, 
    function(){
        var listTitle = web.get_title() + " Documents";

        var listBox;
        var i = 0;
        var reggie // ...
        // rest of your code goes here...

    }),Function.createDelegate(this, this.onQueryFailed)
);