我是使用SP.JS的新手,我一直试图从列表中提取信息。这就是我想要做的:我正在创建一个链接命中计数器,只要点击链接就会更新命中列,同时跟踪该链接的href。我目前让脚本完美地写入表,但是,我想写入Sharepoint列表,而不是使用表。其中一个棘手的部分是我需要搜索共享点列表的“href”列以查看点击的href是否已经存在,如果存在,则更新相应的命中字段。如果它不存在,则必须添加href列表。
现在我无法访问SP列表,并且收到错误。这是当前的代码:
var siteurl = 'urlofsite'
var clientContext = new SP.ClientContext(siteurl);
var HrefList = clientContext.get_web().get_lists().getByTitle('HrefTracker');
var camlQuery = new SP.CamlQuery();
var collListItem = HrefList.getItems(camlQuery);
clientContext.load(collListItem);
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
listItemInfo += '\nHref: ' + oList.get_item('href');
}
alert(listItemInfo.toString());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
现在我在SP ajax脚本中遇到错误:未捕获的TypeError:无法读取未定义的属性'apply'。此时,我只想查看它是否实际从列中提取任何信息并提醒它看看它是什么。任何帮助都将不胜感激。谢谢!
答案 0 :(得分:0)
默认情况下 SharePoint ExecuteQuery不会加载项目的所有属性。我们需要明确加载这些属性。
使用以下语法加载自定义列。
clientContext.load(collListItem,'Include(href)');
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));