在Sharepoint 2013中使用BX Slider时遇到问题 - 将列表项返回为未定义

时间:2014-03-16 02:35:03

标签: jquery sharepoint sharepoint-2013 bxslider

我正在尝试在Sharepoint 2013的安装上部署bxslider Jquery图像滑块库,我需要帮助解决我的JQuery代码问题。

我正在尝试做的事情:访问用户提交的新闻文章列表,这些新闻文章可能附有图片,也可能没有附加图片,并在bxslider上一次运行批准状态为“已批准”的文章。

发生了什么:bxslider正在查找列表,它正在查找文章,但我正在尝试阅读的大部分信息都会返回“未定义”。目前我得到的只是文章标题。

我还需要获取文章的发布日期(存储在名为“Date”的列表列中),作者姓名(在“articleAuthor”栏中)和文章的实际文本(在“文章文本”栏中 - 空格包含在列名中。)

这是我的代码:

$(document).ready(function() {
try {
$().SPServices({ 
    operation: "GetListItems",
    async: false,

    //Setup Caml query for all approved news articles, allow for the possiblity of attachments

    CAMLQueryOptions: "<QueryOptions><IncludeAttachmentUrls>True</IncludeAttachmentUrls></QueryOptions>", 
    CAMLQuery: "<Query><Where><Eq><FieldRef Name='_ModerationStatus' /><Value Type='ModStat'>Approved</Value></Eq></Where></Query>",

    listName: "project1News",

    completefunc: function (xData, Status) {
      //alert(Status);
      var count = 0;

    $(xData.responseXML).SPFilterNode("z:row").each(function() {
        count++;
        var image= $(this).attr("ows_Attachments") != '0' ? $(this).attr("ows_Attachments") : '';
        var title = $(this).attr("ows_Title");
        var date = $(this).attr("ows_Date");
        var author = $(this).attr("ows_articleAuthor");
        var article = $(this).attr("ows_Article Text");

        //Setup article list item

        $('.bxslider').prepend('<li><div class="newsWrapper">'+
            '<table cellpadding="10"><tr><td width="400" valign="top">'+
            '<a href="' + image + '" data-lightbox="image-' + count + '"><img src="' + image + '" alt="NewsImage"/></a>'+
            '</td><td width="640" valign="top" cell-padding="10"><h3 class="newsTitle">'+  title +'</h3>'+
            '<h3 class="newsAuthor">Posted ' + date + ' by ' + author + '</h3>'+
            '<h3 class="newsBody">'+ article + '</h3></td></tr></table></div></li>');
      });
    }
  });
  }

  catch (err) {
        alert("Something failed: " + err.message);
  }
});

实际执行滑块的Jquery命令存储在实际包含滑块的webpart的代码文件中。

最后,为了记录,我在我的webpart代码中引用了以下JQuery库:

  1. jquery 1.8.2(也试过1.10.2 - 没有变化)

  2. bxslider.min.js - BX Slider Jquery Library

  3. jquery.SPServices-2014.01.min.js - 一个JQuery库“旨在使Sharepoint上的JQuery更容易。”哈,我说。

  4. SP.js,通过服务器令牌。

  5. 这是我的级别之上的JQuery,我需要我能得到的所有帮助。我刚刚开始学习Sharepoint,所以我可能在这段代码中遇到了很多新手的错误。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您在其余调用中缺少一个选项来获取特定字段。我相信标题和ID会自动生效,这可以解释为什么其余部分未定义。

CAMLViewFields: "<ViewFields><FieldRef Name='ColumnA' /><FieldRef Name='ColumnB' /></ViewFields>"