0

我需要从公告列表中获取所有项目并使用滑块显示每个项目。对于滑动,我使用的是 JQuery。我在获取所有项目并一一显示时遇到问题。我使用了以下代码。

function Fetchdata() {
            var ctx = new SP.ClientContext(appWebUrl);//Get the SharePoint Context object based upon the URL  
            var appCtxSite = new SP.AppContextSite(ctx, hostWebUrl);
            var web = appCtxSite.get_web();
            var list = web.get_lists().getByTitle("Announcement");

            var camlQuery = new SP.CamlQuery();
            //camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'Title\'/>' +
            //    '<Value Type=\'Text\'>Annoucement1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>');
            collListItem = list.getItems(camlQuery);

            ctx.load(collListItem);


            ctx.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 += oListItem.get_item('Title');
        listItemInfo += oListItem.get_item('Body');




    }
    document.getElementById('body1').innerHTML = listItemInfo.toString();
    alert(listItemInfo);


}



  function onQueryFailed(sender, args) {

        alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
    }
4

2 回答 2

0

您好阅读公告列表项目在 MSDN ( http://msdn.microsoft.com/en-us/library/office/hh185007(v=office.14).aspx ) 中演示。您的代码大部分看起来像 MSDN 示例片段 - 应该可以工作。

  1. 确保您使用的是 SharePoint 网站的正确 URL
  2. 确保您在 JS 代码中拼写正确的列表名称。

如果以上两个都已经正确,请尝试在 VS 或 Chrome 调试器中调试您的代码。

于 2014-12-29T08:52:28.157 回答
0

我已经找到了上述问题的解决方案

enter code here

function Fetchdata() { var ctx = new SP.ClientContext(appWebUrl);//根据URL获取SharePoint Context对象
var appCtxSite = new SP.AppContextSite(ctx, hostWebUrl); var web = appCtxSite.get_web(); var list = web.get_lists().getByTitle("公告");

// var camlQuery = new SP.CamlQuery(); //camlQuery.set_viewXml('' + // 'Annoucement110'); collListItem = list.getItems("");

ctx.load(collListItem);


ctx.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));

}

函数 onQuerySucceeded(sender, args) {

var listItemInfo1 = new Array();
var listItemInfo2 = new Array();
var listItemInfo3 = new Array();

var itemCount = 0;

var listItemEnumerator = collListItem.getEnumerator();
while (listItemEnumerator.moveNext()) {


    var oListItem = listItemEnumerator.get_current();

    listItemInfo1[itemCount] = oListItem.get_item('Title');
    //alert(listItemInfo1);
    listItemInfo2[itemCount] = oListItem.get_item('Body');
    listItemInfo3[itemCount]= oListItem.get_item('Images').get_url();
    itemCount++;
    // alert(itemCount);


}




    for (var i in listItemInfo1) {



    var parent = $('#announcement_slider');


    //Create a div
    var p1 = document.createElement('div');
    parent.append(p1);

    var images = document.createElement('img');
    $(images).attr('src', listItemInfo3[i]);

    $(images).attr('class', 'left mrg_right_10');

    var spanTag = document.createElement('span');

    var spanTag1 = document.createElement('span');
   // alert(listItemInfo3[i]);

    //alert(listItemInfo3[i]);

    spanTag.innerHTML = listItemInfo1[i].toString();
    spanTag1.innerHTML = listItemInfo2[i].toString();






    p1.appendChild(images);

    p1.appendChild(spanTag);
    p1.appendChild(spanTag1);




}

    $('#announcement_slider').slidesjs({
        height: 50,
        play: {
            active: true,
            auto: true,
            interval: 6000,
            swap: true
        },
        navigation: {
            active: false
        }
    });




}

函数 onQueryFailed(sender, args) {

alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());

}

于 2015-01-06T09:22:31.700 回答