我想在JS中检索sharepoint列表的标题。
我的函数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”是不可能的?
致以最诚挚的问候,
答案 0 :(得分:0)
executeQueryAsync
有两个参数:查询成功时运行的回调函数,以及查询遇到任何错误时要运行的回调函数。
依赖于成功运行的查询的任何代码都应放在里面成功回调函数(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)
);