如何从共享点列表中显式加载 javascript 的列
How to load explicitly columns with javascript from sharepoint list
以下代码完美运行
$(document).ready(function () {
var scriptbase = "/_layouts/15/";
$.getScript(scriptbase + "SP.Runtime.js");
ExecuteOrDelayUntilScriptLoaded(ready, "SP.Runtime.js");
})
function ready() {
var scriptbase = "/_layouts/15/";
$.getScript(scriptbase + "SP.js", function(){
var d = $.Deferred();
var path = document.location.href
console.log(path);
var context = new SP.ClientContext('http://myserver/centrodeprocesos/procesos');
var oList = context.get_web().get_lists().getByTitle('ImagenesDeFondo');
var camlQuery = SP.CamlQuery.createAllItemsQuery();
var collTermListItem = oList.getItems(camlQuery);
context.load(collTermListItem);
var o = {d: d, collTermListItem:collTermListItem};
context.executeQueryAsync(
Function.createDelegate(o, onQuerySucceeded),
Function.createDelegate(o, onQueryFailed));
return d.promise();
});
}
function onQuerySucceeded()
{
var listItemEnumerator = this.collTermListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
console.log(oListItem.get_item('Title'));
//console.log(oListItem.get_item('Url'));
}
this.d.resolve(oListItem);
}
function onQueryFailed() {
this.d.reject("something bad happened");
}
但是我还需要打印 URL 列表中的一个字段
$(document).ready(function () {
var scriptbase = "/_layouts/15/";
$.getScript(scriptbase + "SP.Runtime.js");
ExecuteOrDelayUntilScriptLoaded(ready, "SP.Runtime.js");
})
function ready() {
var scriptbase = "/_layouts/15/";
$.getScript(scriptbase + "SP.js", function(){
var d = $.Deferred();
var path = document.location.href
console.log(path);
var context = new SP.ClientContext('http://myserver/centrodeprocesos/procesos');
var oList = context.get_web().get_lists().getByTitle('ImagenesDeFondo');
var camlQuery = SP.CamlQuery.createAllItemsQuery();
var collTermListItem = oList.getItems(camlQuery);
context.load(collTermListItem, 'Include(Url)');
var o = {d: d, collTermListItem:collTermListItem};
context.executeQueryAsync(
Function.createDelegate(o, onQuerySucceeded),
Function.createDelegate(o, onQueryFailed));
return d.promise();
});
}
function onQuerySucceeded()
{
var listItemEnumerator = this.collTermListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
console.log(oListItem.get_item('Title'));
console.log(oListItem.get_item('Url'));
}
this.d.resolve(oListItem);
}
function onQueryFailed() {
this.d.reject("something bad happened");
}
错误是 属性 尚未初始化或需要明确请求。
SP.ClientContext.load method 允许指定必须请求哪些属性。
在您提供的示例中,仅请求 Url
属性:
context.load(collTermListItem, 'Include(Url)');
但有两个属性被排除在外:
console.log(oListItem.get_item('Title')); //<--this property is not initialized
console.log(oListItem.get_item('Url'));
因此,解决方案是请求两个属性:
context.load(collTermListItem, 'Include(Title,Url)');
例子
以下示例演示了如何从 Images
库中检索标题和 Url 属性:
var listTitle = 'Images';
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var items = list.getItems(SP.CamlQuery.createAllItemsQuery());
ctx.load(items,'Include(Title,FileRef)');
ctx.executeQueryAsync(
function () {
for(var i = 0; i < items.get_count();i++) {
var item = items.getItemAtIndex(i);
console.log(item.get_item('Title'));
console.log(item.get_item('FileRef'));
}
},
function (sender, args) {
//Error handling goes here..
});
以下代码完美运行
$(document).ready(function () {
var scriptbase = "/_layouts/15/";
$.getScript(scriptbase + "SP.Runtime.js");
ExecuteOrDelayUntilScriptLoaded(ready, "SP.Runtime.js");
})
function ready() {
var scriptbase = "/_layouts/15/";
$.getScript(scriptbase + "SP.js", function(){
var d = $.Deferred();
var path = document.location.href
console.log(path);
var context = new SP.ClientContext('http://myserver/centrodeprocesos/procesos');
var oList = context.get_web().get_lists().getByTitle('ImagenesDeFondo');
var camlQuery = SP.CamlQuery.createAllItemsQuery();
var collTermListItem = oList.getItems(camlQuery);
context.load(collTermListItem);
var o = {d: d, collTermListItem:collTermListItem};
context.executeQueryAsync(
Function.createDelegate(o, onQuerySucceeded),
Function.createDelegate(o, onQueryFailed));
return d.promise();
});
}
function onQuerySucceeded()
{
var listItemEnumerator = this.collTermListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
console.log(oListItem.get_item('Title'));
//console.log(oListItem.get_item('Url'));
}
this.d.resolve(oListItem);
}
function onQueryFailed() {
this.d.reject("something bad happened");
}
但是我还需要打印 URL 列表中的一个字段
$(document).ready(function () {
var scriptbase = "/_layouts/15/";
$.getScript(scriptbase + "SP.Runtime.js");
ExecuteOrDelayUntilScriptLoaded(ready, "SP.Runtime.js");
})
function ready() {
var scriptbase = "/_layouts/15/";
$.getScript(scriptbase + "SP.js", function(){
var d = $.Deferred();
var path = document.location.href
console.log(path);
var context = new SP.ClientContext('http://myserver/centrodeprocesos/procesos');
var oList = context.get_web().get_lists().getByTitle('ImagenesDeFondo');
var camlQuery = SP.CamlQuery.createAllItemsQuery();
var collTermListItem = oList.getItems(camlQuery);
context.load(collTermListItem, 'Include(Url)');
var o = {d: d, collTermListItem:collTermListItem};
context.executeQueryAsync(
Function.createDelegate(o, onQuerySucceeded),
Function.createDelegate(o, onQueryFailed));
return d.promise();
});
}
function onQuerySucceeded()
{
var listItemEnumerator = this.collTermListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
console.log(oListItem.get_item('Title'));
console.log(oListItem.get_item('Url'));
}
this.d.resolve(oListItem);
}
function onQueryFailed() {
this.d.reject("something bad happened");
}
错误是 属性 尚未初始化或需要明确请求。
SP.ClientContext.load method 允许指定必须请求哪些属性。
在您提供的示例中,仅请求 Url
属性:
context.load(collTermListItem, 'Include(Url)');
但有两个属性被排除在外:
console.log(oListItem.get_item('Title')); //<--this property is not initialized
console.log(oListItem.get_item('Url'));
因此,解决方案是请求两个属性:
context.load(collTermListItem, 'Include(Title,Url)');
例子
以下示例演示了如何从 Images
库中检索标题和 Url 属性:
var listTitle = 'Images';
var ctx = SP.ClientContext.get_current();
var list = ctx.get_web().get_lists().getByTitle(listTitle);
var items = list.getItems(SP.CamlQuery.createAllItemsQuery());
ctx.load(items,'Include(Title,FileRef)');
ctx.executeQueryAsync(
function () {
for(var i = 0; i < items.get_count();i++) {
var item = items.getItemAtIndex(i);
console.log(item.get_item('Title'));
console.log(item.get_item('FileRef'));
}
},
function (sender, args) {
//Error handling goes here..
});