术语库就是企业元数据,在项目中可能会遇到读取termset生产webpart,我这里是生成的treeView,也可以生成标签云,这个自己写个算法,换膛不换药。
using (SPSite site = SPContext.Current.Site)
{
//获取术语集合
TaxonomySession session = new TaxonomySession(site);
//获取存储对象
TermStore termStore = session.DefaultSiteCollectionTermStore;
// 获取术语里的Group,术语总共分3层Group、TermSet、Term
GroupCollection groupColl = session.TermStores["Managed Metadata Service"].Groups;
//遍历Group
foreach (Group gr in groupColl)
{
//获取系统组下面的termset,根据需要修改条件
if (gr.Name != "系统")
{
TreeNode treeNode = new TreeNode();
treeNode.Text = "标签";
this.TagTree.Nodes.Add(treeNode);
TermSetCollection tms = gr.TermSets;
//遍历TermSet
foreach (TermSet tm in tms)
{
TreeNode nodes = new TreeNode();
nodes.Text = tm.Name.ToString();
createTermSet(tm.Terms, nodes);
treeNode.ChildNodes.Add(nodes);
}
}
}
}
遍历出所有termset 、term
public void createTermSet(TermCollection tmNode, TreeNode nodes)
{
//遍历Term
foreach (Term tms in tmNode)
{
TreeNode termSetNode = new TreeNode();
termSetNode.Text = tms.Name.ToString();
nodes.ChildNodes.Add(termSetNode);
createTermSet(tms.Terms, termSetNode);
}
}
我所写的,描述少些,但是都是我在项目中的代码,稍作修改直接能用。