2013-09-27 92 views
1

我使用visual studio創建了SharePoint 2013提供商託管應用。它不使用Web部件。我要檢索駐留在SharePoint網站在SharePoint 2013列表中的數據collection.I可以做到這一點通過這個代碼從Sharepoint提供商託管應用檢索SharePoint 2013列表數據

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

可視化Web部件這給了我的項目表,我用表來獲得所需數據。但現在的問題是我想使用我的SharePoint應用程序相同的數據,它是由asp.net頁面與c#代碼隱藏而成的。我使用相同的代碼,但它給我的錯誤,如 「在32位進程不支持

微軟的SharePoint,請確認 你是在一個64位可執行文件運行。」 即使我在應用程序構建設置中使用任何板形式。請讓我知道,如果有任何方式我可以檢索asp.net頁面中的列表數據,以顯示用戶的時間表。

+0

嗨,我剛剛找到了與我的同事們的幫助下這個問題的解決方案。我們使用了SharePoint Provide的Web服務。 以下是獲取Web服務的鏈接。 http://msdn.microsoft.com/en-us/library/lists.aspx 這裏是非常有用的博客的鏈接,它描述瞭如何使用這個 http://sarangasl.blogspot.ca/2009/12 /sharepoint-list-web-service.html 謝謝。希望它能拯救某個人的一天。因爲我花了一天才得到這個結果。 –

回答

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

     } 
相關問題