0

我似乎无法弄清楚如何将我的 SPListItem 转换为我的自定义对象,然后将其添加到我的列表中。我是一名初学者开发人员,并且是 SharePoint 的新手,因此不胜感激。如何将我的 item["Explanatory Text"] 设置为 public class ExpandedHomeSlider { public string ExplanatoryText},然后将其添加到我的 expandSliderList 中?

    public partial class HomePageHeroRotator : UserControl
{

    public class HeroImage
    {
        public SPListItem SpListItem;
        public string HeroImageUrl
        {
            get { return SpListItem["HeroImage"].ToString(); }
        }
        public string HeroImageUrl2
        {
            get { return SpListItem["HeroImageCallOut"].ToString(); }
        }
    }
    public class ExpandedHomeSlider
    {
        public SPListItem SpListItem;
        public string ExplanatoryText
        {
            get { return SpListItem["ExplanatoryText"].ToString(); }
        }
        public string AttentionExplanatoryText2
        {
            get { return SpListItem["ExplanatoryText"].ToString(); }
        }
        public string ExplanatoryText2
        {
            get { return SpListItem["ExplanatoryText"].ToString(); }
        }
        public string HomeSliderImageUrl
        {
            get { return SpListItem["ExpandedSliderImage"].ToString(); }
        }
        public string GreenFlyoutText
        {
            get { return SpListItem["GreenFlyoutText"].ToString(); }
        }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        //Query List for all List Items
        //ASCX to render list items
        SPSite site = null;
        if (SPContext.Current != null)
        {
            site = SPContext.Current.Site;
        }
        SPList list = site.RootWeb.Lists["HomePageHero"];

        SPListItemCollection myItems = list.Items;
        IEnumerable eList = myItems.Fields as IEnumerable;
        List<ExpandedHomeSlider> expandedSliderList = new List<ExpandedHomeSlider>();
        //var expandedSliderList = new List<string>();



        HomePageHeroRpt.DataSource = expandedSliderList;
        HomePageHeroRpt.DataBind();
4

1 回答 1

0

所以我创建了一个 HomePageRotatorItem.cs:

public class HomePageRotatorItem : DataItemBase
{
    /// <summary>
    /// Default constructor
    /// </summary>
    /// <param name="spListItem">The SPListItem to create the DataItemBase from</param>
    public HomePageRotatorItem(SPListItem spListItem) : base(spListItem)
    {
    }

    public string HeroImageUrl
    {
        get { return SpListItem["HeroImage"].ToString(); }
    }
    public string HeroImageUrl2
    {
        get { return SpListItem["HeroImageCallOut"].ToString(); }
    }

    public string ExplanatoryText
    {
        get { return SpListItem["ExplanatoryText"].ToString(); }
    }
    public string AttentionExplanatoryText2
    {
        get { return SpListItem["ExplanatoryText"].ToString(); }
    }
    public string ExplanatoryText2
    {
        get { return SpListItem["ExplanatoryText"].ToString(); }
    }
    public string HomeSliderImageUrl
    {
        get { return SpListItem["ExpandedSliderImage"].ToString(); }
    }
    public string GreenFlyoutText
    {
        get { return SpListItem["GreenFlyoutText"].ToString(); }
    }
}

然后在我的控制.cs中我使用了linq:

protected void Page_Load(object sender, EventArgs e)
    {
        SPSite site = null;
        if (SPContext.Current != null)
        {
            site = SPContext.Current.Site;
        }
        SPList list = site.RootWeb.Lists["HomePageHero"];

        SPListItemCollection myItems = list.Items;
        var rotatorItems = myItems.Cast<SPListItem>().Select(x => new HomePageRotatorItem(x));
        //IEnumerable eList = myItems.Fields as IEnumerable;
        //List<ExpandedHomeSlider> expandedSliderList = new List<ExpandedHomeSlider>();
        //var expandedSliderList = new List<string>();

        //foreach (SPListItem item in myItems)
        //{
        //    var newExpandedSlider = new ExpandedHomeSlider() { ExplanatoryText = item["Explanatory Text"]}
        //    ExpandedHomeSlider ExplanatoryText = item["Explanatory Text"].ToString();
        //    expandedSliderList.Add(ExplanatoryText);       
        //}

        HomePageHeroRpt.DataSource = rotatorItems;
        HomePageHeroRpt.DataBind();
于 2014-02-10T17:45:21.253 回答