SharePoint開發——利用CSOM逐級獲取O365中SharePoint網站的List內容
部落格地址:http://blog.csdn.net/FoxDave
本文介紹如何利用SharePoint客戶端物件模型(.NET)逐級獲取Office 365網站中List的內容,僅僅是示例,沒有講究太多東西。
程式碼如下:
ClientContext ctx = new ClientContext("<your sharepoint site url>");
ctx.Credentials = new SharePointOnlineCredentials("username", GetSecurePassword("password"));
Web web = ctx.Web;
List list = web.Lists.GetByTitle("List");
ctx.Load(list, l => l.RootFolder, l => l.RootFolder.ServerRelativeUrl);
ctx.ExecuteQuery();
stringBuilder = RetrieveItems(ctx, list, list.RootFolder, 0);
Console.WriteLine(stringBuilder.ToString());
首先第一部分是構建SharePoint Online的Context物件,授權認證那裡使用SharePointOnlineCredentials這個物件,這個物件建構函式的引數需要型別為字串的使用者名稱和型別為SecureString的密碼,這裡使用GetSecurePassword這個方法來構建密碼引數,程式碼將在下面列出。
第二部分,利用Context物件獲取指定的List,進而獲取裡面的內容。逐級獲取需要一個遞迴去實現,如上的RetrievevItems方法,同樣會在下面說明。
最後輸出獲取的內容,stringBuilder為全域性的StringBuilder物件,用來儲存讀取到的資訊。
GetSecurePassword方法的程式碼如下:
private static SecureString GetSecurePassword(string pwd)
{
//Get the user's password as a SecureString
SecureString securePassword = new SecureString();
char[] pwdArray = pwd.ToCharArray();
for (int i = 0; i < pwdArray.Length; i++)
{
securePassword.AppendChar(pwdArray[i]);
}
return securePassword;
}
方法的返回型別為SecureString。方法體中,首先構建一個SecureString物件,並將密碼字串轉成char陣列,然後執行AppendChar方法把依次將char陣列的字元傳入,最後返回這個物件就可以了。
RetrievevItems方法的程式碼如下:
private static StringBuilder RetrieveItems(ClientContext ctx, List list, Folder folder, int level)
{
level++;
CamlQuery query = new CamlQuery();
query.FolderServerRelativeUrl = folder.ServerRelativeUrl;
ListItemCollection listItems = list.GetItems(query);
ctx.Load(listItems);
ctx.ExecuteQuery();
foreach (ListItem item in listItems)
{
if (item.FileSystemObjectType == FileSystemObjectType.Folder)
{
ctx.Load(item.Folder);
ctx.ExecuteQuery();
stringBuilder.AppendLine(string.Format("Level: {0}, Folder: {1}", level, item["Title"]));
return RetrieveItems(ctx, list, item.Folder, level);
}
else
{
stringBuilder.AppendLine(string.Format("Level: {0}, Item: {1}", level, item["Title"]));
}
}
return stringBuilder;
}
引數level表示當前的深度。在使用客戶端物件模型獲取列表的Item時,需要傳入一個CamlQuery物件,為該物件的FolderServerRelativeUrl屬性賦值來控制要獲取Item的位置。然後對獲取到的當前級別的Item集合進行遍歷,如果存在資料夾,則進一步遍歷,通過這個遞迴方法進行了實現。相關文章
- SharePoint\O365 CSOM操作"請求訪問設定"功能
- SharePoint 2013 開發——CSOM概要
- SharePoint 2013 開發——獲取使用者配置檔案屬性內容(User Profile)
- SharePoint SC "Audit Settings"功能與CSOM的對應
- SharePoint Site "Language Settings"功能與CSOM的對應
- SharePoint Site "Regional Settings"功能與CSOM的對應
- SharePoint 2013 CSOM 物件模型屬性包物件模型
- SharePoint 2013 開發——SharePoint APP介紹APP
- 【Azure Power BI】Power BI獲取SharePoint List列表後,如何展開List/Table中的欄位,以及使用逗號拼接為一個字串字串
- 易優list功能:獲取列表模板中的列表內容-EyouCms手冊
- Uploading Files in SharePoint 2013 using CSOM and RESTREST
- javascript 獲取iframe中內容JavaScript
- sharepoint 2013 網站集解鎖網站
- 現代化SharePoint經典網站網站
- SharePoint 2013 開發——釋出SharePoint應用程式
- SharePoint PerformancePoint開發例項ORM
- SharePoint 企業開發整合
- SharePoint Framework 配置你的SharePoint客戶端web部件開發環境Framework客戶端Web開發環境
- 在C#開發中如何使用Client Object Model客戶端程式碼獲得SharePoint 網站、列表的許可權情況C#clientObject客戶端網站
- 如何從SharePoint Content DB中查詢List資料
- SharePoint Framework 開發工具和庫Framework
- SharePoint 2013 開發——概述
- SharePoint\O365 "See also"功能 and site feature 啟用\禁用小節
- 現代化SharePoint網站使用者介面網站
- SharePoint 2013 開發——SharePoint Designer 2013工作流
- php獲取網頁內容的三種方法PHP網頁
- PHP獲取目錄中的全部內容RecursiveDirectoryIteratorPHP
- [ SharePoint ADFS 開發部署系列 (一)]
- SharePoint 2013 開發——開發並部署webpartWeb
- SharePoint Framework 基於團隊的開發(三)Framework
- SharePoint Framework 基於團隊的開發(二)Framework
- SharePoint Framework 基於團隊的開發(一)Framework
- SharePoint Framework 基於團隊的開發(五)Framework
- SharePoint Framework 基於團隊的開發(四)Framework
- 利用SSIS進行SharePoint 列表資料的ETL
- 獲取網頁中的密碼和文字輸入框的內容 (轉)網頁密碼
- 深入淺出SharePoint—使用SPSiteDataQuery 查詢多個List中的資料
- SharePoint 2013 開發——APP安全模型APP模型