我使用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页面构成的。我使用相同的代码,但它给我错误 “
32位进程不支持Microsoft SharePoint。请验证 您使用的是64位可执行文件。“ 即使我在应用程序构建设置中使用任何板块形式。如果我能在asp.net页面中检索列表数据以向用户显示他们的日程安排,请告诉我。
答案 0 :(得分:0)
您还可以使用托管客户端对象模型:
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();
}