使用JS从SP List获取特定内容

时间:2015-02-27 19:15:06

标签: javascript sharepoint

我是使用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'。此时,我只想查看它是否实际从列中提取任何信息并提醒它看看它是什么。任何帮助都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

默认情况下 SharePoint ExecuteQuery不会加载项目的所有属性。我们需要明确加载这些属性。

使用以下语法加载自定义列。

clientContext.load(collListItem,'Include(href)');
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));