【问题标题】:Sharepoint get content from listSharepoint 从列表中获取内容
【发布时间】:2018-10-20 15:50:22
【问题描述】:

您好,我尝试为 sharepoint 2013 编写一个小应用程序,我们可以在 SQL Server 上备份我们的项目。现在我尝试遍历 sharepoint 上的所有项目,以便获取字段的内容。比如国家=奥地利。

我尝试按照本指南进行操作,但没有成功:https://msdn.microsoft.com/en-us/library/office/fp179912.aspx

这是我得到的:

//Loads only a Projeclist from sharepoint
public SPpowerPlantList loadProjectFromSharePoint()
{
    SPpowerPlantList pplist = new SPpowerPlantList();
    ClientContext context = new ClientContext(powerPlantSite);
    Web web = context.Web;
    context.Load(web.Lists);
    context.ExecuteQuery();
    foreach (List list in web.Lists)
    {
        SPpowerPlant pp = new SPpowerPlant();
        //Stuff like this one should work but dont....
        pp.country = list.country
    } 
    return pplist;
}

任何建议都会很好,对我的英语感到抱歉

编辑: SPpowerPlantList 应该是来自 Sharepoint 的 Project-List 的所有项目的列表。并且 loadProjectsFromSharepoint 应该得到一个项目列表,我可以开始将值添加到 sql 服务器。 SQL 表值 = Sharepoint 字段值之类的东西。

EDIT2 因此,对文件的访问现在适用于一些字段,但我知道我得到一个属性或字段尚未初始化。它尚未被请求或请求尚未执行。它可能需要明确请求例外。

这是新代码:(某些字段的作用类似于货币)

//Loads only a Projeclist from sharepoint
    public SPpowerPlantList loadProjectFromSharePoint()
    {

        SPpowerPlantList powerPlantList = new SPpowerPlantList();

        ClientContext context = new ClientContext(powerPlantSite);

        List powerPlantsList = context.Web.Lists.GetByTitle("Power Plants");

        CamlQuery query = CamlQuery.CreateAllItemsQuery();
        query.ViewXml = @"<View><Query> </Query></View>";
        ListItemCollection items = powerPlantsList.GetItems(query);

        context.Load(items);
        context.ExecuteQuery();
        foreach (ListItem listItem in items)
        {
            SPpowerPlant powerPlant = new SPpowerPlant();

            powerPlant.projectName = listItem["Project"].ToString();
            powerPlant.location = listItem["Loacation"].ToString();
            powerPlant.country = listItem["Country"].ToString();
            powerPlant.currency = listItem["Currency"].ToString();
            powerPlant.shortName = listItem["Short Name"].ToString();
            powerPlant.spaceUrl = listItem["Space"].ToString();
            powerPlant.numberOfWtgs = Convert.ToInt32(listItem["Number of WTGs"]);
            powerPlant.mwWtg = Convert.ToDouble(listItem["MW WTG"]);
            powerPlant.mwTotal = Convert.ToDouble(listItem["MW Total"]);
            powerPlant.projectShareWeb = Convert.ToDouble(listItem["Project Share "]);
            powerPlant.mwWeb = Convert.ToDouble(listItem["MW "]);
            powerPlant.phaseDescription = listItem["Phase Description"].ToString();
            powerPlant.projectProgress = Convert.ToDouble(listItem["Project Progress"]);
            powerPlant.mwDeveloped = Convert.ToDouble(listItem["MW developed"]);
            powerPlant.possibleWtgTypes = listItem["Possible WTG Types"].ToString();
            powerPlant.hubHeight = listItem["Hub Height"].ToString();
            powerPlant.allPermits = Convert.ToDateTime(listItem["All Permits"]);
            powerPlant.cod = Convert.ToDateTime(listItem["COD"]);
            powerPlant.projectManager = listItem["Project manager"].ToString();
            powerPlant.technology = listItem["Technology"].ToString();
            powerPlant.state = listItem["State"].ToString();
            powerPlant.stateSince = Convert.ToDateTime(listItem["State since"]);
            powerPlant.visibility = listItem["Visibillity"].ToString();
            powerPlant.phase = listItem["Phase"].ToString();
            powerPlant.phaseNumber = listItem["Phase Number"].ToString();

            //Console.WriteLine(listItem["Currency"]);

            powerPlantList.Add(powerPlant);

        }

        return powerPlantList;

    }

我将它与 lambda 表达式绑定,但没有成功。

【问题讨论】:

  • 您能否详细说明您的代码中的“SPpowerPlantList”是什么以及您希望从 loadProjectFromSharePoint 函数返回的确切输出。

标签: c# sharepoint sharepoint-2013


【解决方案1】:

问题是我的 listitem["names"] 不正确。 要让这些东西发挥作用,您需要转到 sharepoint 站点并查看链接,当您在那里对其进行排序时,您会看到列表项的正确名称。

新的工作形式:

 //Loads only a Projeclist from sharepoint
    public SPpowerPlantList loadProjectFromSharePoint()
    {

        SPpowerPlantList powerPlantList = new SPpowerPlantList();

        ClientContext context = new ClientContext(powerPlantSite);

        List powerPlantsList = context.Web.Lists.GetByTitle("Power Plants");

        CamlQuery query = CamlQuery.CreateAllItemsQuery(100);
        //query.ViewXml = @"<View><Query> </Query></View>";
        ListItemCollection items = powerPlantsList.GetItems(query);

        //context.Load(web.Lists,
        //             lists => lists.Include(list => list.Title, // For each list, retrieve Title and Id. 
        //                                    list => list.Id,
        //                                    list => list.Description));

        context.Load(items);
        context.ExecuteQuery();
        foreach (ListItem listItem in items)
        {
            SPpowerPlant powerPlant = new SPpowerPlant();

            powerPlant.projectName = listItem["Title"].ToString();
            powerPlant.location = listItem["Location"].ToString();
            powerPlant.country = listItem["Country"].ToString();
            powerPlant.currency = listItem["Currency"].ToString();
            powerPlant.shortName = listItem["Short_x0020_Name"].ToString();
            powerPlant.spaceUrl = listItem["Space"].ToString();
            powerPlant.numberOfWtgs = Convert.ToInt32(listItem["Number_x0020_of_x0020_WTGs"]);

            //Console.WriteLine(listItem[""]);

            //powerPlantList.Add(powerPlant);

        }

        return null;

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多