[SharePoint]使用代碼擷取Document Set對象資訊

來源:互聯網
上載者:User

什麼是文檔集

文檔集是SharePoint 2010中一個新加入的功能,它可以協助我們更好的對SharePoint中的文檔進行管理。文檔集為其內儲存的所有文檔提供了統一的使用者介面 (UI)、中繼資料、行為,它使文檔與SharePoint網站之間聯絡的更加緊密了。其實可以將文檔集看成是一個功能更加強大的檔案夾,因為文檔集內容類型就是派生自檔案夾內容類型的。

 

如何擷取文檔集資訊

在建立文檔集內容類型時我們是可以將該內容類型中的欄位設定為共用列,共用列的值可以自動的被同步到文檔集中的所有文檔。

在開發過程中,如果要通過文檔集中的文檔對象擷取這些共用列的內容時,完全可以像擷取普通的列表欄位那樣來擷取共用列的值。

SPListItem m_item=file.Item; String m_year=m_item["年度"].ToString(); String m_term=m_item["學期"] .ToString(); String m_examDate=m_item["考試時間"] .ToString(); 

 

如果要獲得文檔集內的非共用列的內容呢?這時應該怎麼辦呢?例如文檔集的名稱欄位或者一些隱藏欄位,這些欄位是無法設定為共用列的。

此時就要想辦法獲得該文檔集的DocumentSet對象了,為了獲得DocumentSet對象需要使用DocumentSet.GetDocumentSet(SPFolder folder)方法,該方法需要一個SPFolder對象作為參數,前面已經說過了可以將文檔集看成一個檔案夾,那麼我們可以使用下面的代碼來獲得這個SPFolder對象。

SPFolder folder= item.Web.GetFolder(item.Url.Substring(0, item.Url.LastIndexOf('/'))); 

有了Folder對象就可以很容易的獲得這個文檔集的DocumentSet對象了。

DocumentSet docSet = DocumentSet.GetDocumentSet(folder); 

 接著再使用DocumentSet對象的Item屬性就可以獲得與這個文檔集對象關聯的SPListItem對象,這時就可以很容易的獲得該文檔集的各個欄位的內容了。

 try { SPListItem item = SPContext.Current.ListItem;        SPFolder folder= item.Web.GetFolder(item.Url.Substring(0, item.Url.LastIndexOf('/')));  DocumentSet set = DocumentSet.GetDocumentSet(folder);    writer.WriteLine("ContentType: {0}<br/>", item.ContentType.Name);  writer.WriteLine("Title: {0}<br/>", item.Title);  writer.WriteLine("WelcomePageUrl: {0}<br/>", set.WelcomePageUrl);  writer.WriteLine("ItemCount: {0}<br/>", set.Folder.ItemCount);  writer.WriteLine("Welcomepage Fields:<br/>");  DocumentSetTemplate template = set.ContentTypeTemplate;  WelcomePageFieldCollection fields = template.WelcomePageFields;  foreach (SPField field in fields)  {  writer.WriteLine("{0}<br/>", field.Title);  }  }  catch (Exception)  { } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.