使用JavaScript查询SharePoint列表

时间:2013-07-16 01:41:03

标签: javascript sharepoint

我正在尝试从SharePoint 2010列表中获取值。列表名称是“serversname / sites / dev / Lists / SitesList / AllItems.aspx”URL处的“SitesList”。我想在警告消息“标题”和“URL”上打印的列。

一旦我运行了所有内容,页面就会加载,但根本没有任何反应。我可以看到我的网络部分在那里,我甚至将代码转换为简单的警报消息,并且它可以工作。我做错了什么?

<script type="text/javascript">
var siteUrl = '/sites/dev/';

function retrieveListItems() {

    var clientContext = new SP.ClientContext(siteUrl);
    var oList = clientContext.get_web().get_lists().getByTitle('SitesList');

    var camlQuery = new SP.CamlQuery();
    camlQuery.set_viewXml("<View><Query><Where><Geq><FieldRef Name=\'ID\'/>" + "<Value     Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>");
    this.collListItem = oList.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 += '\nID: ' + oListItem.get_id() +
        '\nTitle: ' + oListItem.get_item('Title') +
        '\nURL: ' + oListItem.get_item('URL');
    }

    alert(listItemInfo.toString());
}

function onQueryFailed(sender, args) {

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
</script>

1 个答案:

答案 0 :(得分:1)

看起来你实际上从未触发retrieveListItems功能。

尝试在var siteUrl

之后在脚本顶部添加此内容
<script type="text/javascript">
var siteUrl = '/sites/dev/';

ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js");

function retrieveListItems() {
...
}
...
</script>

这是特定于SharePoint的,并且会在执行retrieveListItems函数之前等待SP.JS加载。

这通常是比jQuery的document.ready函数或本机JS的自执行函数更推荐的方法,因为在页面加载后,SharePoint应用程序会在幕后发生许多事情。

希望这有帮助!