asp.net 正在从Sharepoint提供程序托管的应用程序检索SharePoint 2013列表数据

6ojccjat  于 2023-01-14  发布在  .NET
关注(0)|答案(1)|浏览(143)

我使用Visual Studio创建了SharePoint 2013提供程序托管应用程序。它不使用Web部件。我必须从驻留在SharePoint网站集上的SharePoint 2013列表中检索数据。我可以通过以下代码使用Visual 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应用程序是由asp.net页面与C#代码背后。我使用了相同的代码,但它给我错误,如“
Microsoft SharePoint在32位进程中不受支持。请验证您是否正在64位可执行文件中运行。”即使我在应用程序构建设置中使用任何板形式。请让我知道是否有任何方法可以检索www.example.com页面中的列表数据asp.net,以向用户显示他们的日程安排。

htrmnn0y

htrmnn0y1#

您还可以使用托管客户端对象模型:

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();

        }

相关问题