SharePoint 2013 如何使用TaxonomyWebTaggingControl 控制項

來源:互聯網
上載者:User

標籤:style   blog   http   io   color   ar   os   使用   sp   

  在該文章中,我將介紹如何使用TaxonomyWebTaggingControl控制項, 首先我相信您已經在SharePoint Managed Metadata Service裡定義Term Sets,如果沒有,請先定義您的Term Sets(可以參考該文章how to create metadata column), 該控制項能協助我們顯示/設定各種Terms。

  其次我們需要瞭解Managed Metadata的結構,請看以,您可以清晰地看到每一個結構(Term Store -> Group -> Term Set -> Terms),接下來我們進入主題, 該如何使用TaxonomyWebTaggingControl 控制項綁定這些資料呢,在該案例中我們綁定Product Type Group的所有資料。

 

  根據以下步驟:

  1. 在我們的設計頁面中定義註冊Microsoft.SharePoint.Taxonomy控制項
<%@ Register TagPrefix="Taxonomy" Namespace="Microsoft.SharePoint.Taxonomy" Assembly="Microsoft.SharePoint.Taxonomy, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

  2.  在內容部分添加TaxonomyWebTaggingControl控制項

<Taxonomy:TaxonomyWebTaggingControl ID="twtc_productType" runat="server"></Taxonomy:TaxonomyWebTaggingControl>

  3.  在後台綁定資料(從Managed Metadata Service中擷取Group的資料)

  

 1 using Microsoft.SharePoint; 2 using Microsoft.SharePoint.Taxonomy; 3  4 /// <summary> 5 /// TaxonomyWebTaggingControl Bind 6 /// </summary> 7 /// <param name="productTypeControl">TaxonomyWebTaggingControl Control</param> 8 public static void ProductTypeBind(TaxonomyWebTaggingControl productTypeControl) 9         {10             // Open the site11             using (SPSite site = new SPSite(SPContext.Current.Web.Url))12             {13                 using (SPWeb web = site.OpenWeb())14                 {15                     TaxonomySession session = new TaxonomySession(site);16                     // Get the Term Store node from Managed Metadata Service17                     TermStore termStore = null;18                     if (session.TermStores != null && session.TermStores.Count > 0)19                    {20                       termStore = session.TermStores["Managed Metadata Service"]; //if you a custom meta service you should change name.21                     }22                     if (termStore != null)23                     {24                         //Guid anchorId = new Guid();25                         Group group = termStore.Groups["Product Type"]; // Get the Group node from Managed Metadata Service26                         productTypeControl.SspId.Add(termStore.Id); // do it for all termsets27                         foreach (TermSet item in group.TermSets)28                         {29                             productTypeControl.TermSetId.Add(item.Id); // Add the Term30                             /*  This could be achieved by setting AnchorId property for TaxonomyWebTaggingControl control that allows to specify ID of parent Term for any valid value in control.31                             foreach (Term term in item.Terms)32                             {33                                 if (term.Name == ManagedMetadataType.TermName)34                                 {35                                     anchorId = term.Id;36                                     break;37                                 }38                             } */ 39                         }40 41                         //productTypeControl.AnchorId = anchorId;42                         productTypeControl.GroupId = group.Id;43                         productTypeControl.IsAddTerms = false;44                     }45                 }46             }47         }

  以上代碼將可以擷取Product Type(defined by GB/T 13702-1992)節點的資料, 可以查看一下

  有些朋友會問是否可以根據Term-節點作為父節點顯示?對於該問題的回答是可以, 比如我想以All為父節點,我們僅僅通過該控制項中的AnchorId屬性,將All的id賦值給AnchorId即可,留心的朋友會發現在以上代碼中注釋部分就是實現該功能

  

  如果有大牛認為有更好的idea, 請提供您寶貴的建議供大家學習,謝謝

SharePoint 2013 如何使用TaxonomyWebTaggingControl 控制項

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.