从 SharePoint 提供程序托管的应用程序检索 SharePoint 2013 列表数据

本文关键字:SharePoint 检索 应用程序 2013 列表 数据 程序 | 更新日期: 2023-09-27 18:33:16

我使用 Visual Studio 创建了一个 SharePoint 2013 提供程序托管的应用程序。它不使用 Web 部件。我必须从驻留在 SharePoint 网站集上的 SharePoint 2013 列表中检索数据。我可以通过此代码使用可视 Web 部件做到这一点

 private DataTable GetItemDetails()
 {
      SPWeb spweb = SPContext.Current.Web;
      SPList ticketsList = spweb.GetList("[http://git-hub/sites/mysiteName/Lists/CalendarList/AllItems]");
      return ticketsList.Items.GetDataTable();
 }

这给了我项目表,我使用该表来获取所需的数据。但是现在的问题是我想使用与我的SharePoint应用程序相同的数据,该应用程序由带有C#代码隐藏的 asp.net 页面组成。我使用相同的代码,但它给了我错误,例如 '">

Microsoft SharePoint 在 32 位进程中不受支持。请验证 您正在运行 64 位可执行文件。 甚至我在应用程序构建设置中使用任何板形式。请让我知道我是否可以在页面中检索列表数据 asp.net 向用户显示他们的日程安排。

从 SharePoint 提供程序托管的应用程序检索 SharePoint 2013 列表数据

您还可以

使用托管客户端对象模型:

Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]);
        List<string> listOfUsers = new List<string>();

        using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))
        {
            List oList = clientContext.Web.Lists.GetByTitle("TestList");
            CamlQuery camlQuery = new CamlQuery();
            camlQuery.ViewXml = "<View><Query><Where><Geq><FieldRef Name='ID'/>" +
                "<Value Type='Number'>0</Value></Geq></Where></Query><RowLimit>100</RowLimit></View>";
            Microsoft.SharePoint.Client.ListItemCollection collListItem = oList.GetItems(camlQuery);
            clientContext.Load(collListItem);
            clientContext.ExecuteQuery();
            foreach (Microsoft.SharePoint.Client.ListItem oListItem in collListItem)
            {
                listview.Add(string.Format("ID: {0} 'nTitle: {1}", oListItem.Id, oListItem["Title"]));
            }
            ListList.DataSource = listOfUsers;
            ListList.DataBind();
        }