SharePoint 2013 如何使用TaxonomyWebTaggingControl 控件

  在该文章中,我将介绍如何使用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 site
11             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 Service
17                     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 Service
26                         productTypeControl.SspId.Add(termStore.Id); // do it for all termsets
27                         foreach (TermSet item in group.TermSets)
28                         {
29                             productTypeControl.TermSetId.Add(item.Id); // Add the Term
30                             /*  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, 请提供您宝贵的建议供大家学习,谢谢

时间: 2024-11-04 00:26:06

SharePoint 2013 如何使用TaxonomyWebTaggingControl 控件的相关文章

Sharepoint2013:日期控件报错

1 问题 1> 在sharepoint中的,日期控件(DateTimeControl),日期过滤控件(Date Filter)和SPListViewFilter等包含日期组件的控件,在特定情况下会报以下的错误 2> 我们查看下具体错误信息是: Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. Source Error: An unhand

sharepoint 2013 附件控件FileUpload如何检验是否为图片的方法

记录一下关于附件控件FileUpload如何检验是否为图片的方法: function checkImg() { var fileObj =document.getElementById('<%=FileObj.ClientID%>'); var str =fileObj.value; if (str !='') { if(str.substring((str.lastIndexOf(".jpg"))) == (".jpg") ||str.substrin

sharepoint 2013 附件控件FileUpload怎样检验是否为图片的方法

记录一下关于附件控件FileUpload怎样检验是否为图片的方法: function checkImg() { var fileObj =document.getElementById('<%=FileObj.ClientID%>'); var str =fileObj.value; if (str !='') { if(str.substring((str.lastIndexOf(".jpg"))) == (".jpg") ||str.substrin

SharePoint统计图表控件Nevron Chart for SharePoint控件介绍

Nevron Chart for SharePoint是一个先进的图表Web部件,其能为您的SharePoint站点提供一整套的2D和3D图表类型,高度可自定义的轴,先进的数据分析功能,严密的数据集成和无与伦比的视觉效果.其组合了业内领先的Nevron Charting engine for ASP.NET以及Nevron Pivot Data Aggregation engine.这使得用户能在SharePoint环境中直观的完成复杂的透视图表的创建. 主要功能: 支持SharePoint S

Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)

我们经常要实现类似省市联动一样的功能,常见的就是二个查找控件,一个选择了省后,另一个市的查找控件就自动过滤了,只显示当前省下的市,而不是所有的市.当然这是最简单的,实际工作中还有更复杂的功能要通过过滤查找控件来实现.本文主要介绍基本的查找控件过滤.多表关联的复杂过滤以及子表里实现查找控件的过滤.   一.简单的过滤 先看下需求: 按"Special GL Indicator" 来过滤 Posting 查找控件增加了preSearch事件.它发生在查找控件显示对话框供用户查找记录之前,与

【SharePoint】SharePoint2013中使用客户端对象模型给用户控件赋初值

本文要实现的功能:新建一条列表记录,打开新建记录画面时,自动给[申请人]赋值为当前登录用户. 在SharePoint2010中,可以使用SPServices的SPFindPeoplePicker方法来设定用户选择控件的值. 其中SPGetCurrentUser用来取得当前登录的用户名. $().SPServices.SPFindPeoplePicker({ peoplePickerDisplayName: "申请人", valueToSet: $().SPServices.SPGetC

图表Web组件提供2D和3D图表类型控件Nevron Chart for SharePoint

Nevron Chart for SharePoint是一个先进的图表Web组件,其能为您的SharePoint站点提供一整套的2D和3D图表类型,高度可自定义的轴,先进的数据分析功能,严密的数据集成和无与伦比的视觉效果.其组合了业内领先的Nevron Charting engine for ASP.NET以及Nevron Pivot Data Aggregation engine.这使得用户能在SharePoint环境中直观的完成复杂的透视图表的创建. 此产品属于产品Nevron ShareP

Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件出错的解决方案

Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件,运行页面,会出现如下的错误: 错误原因 VisualStudio 2012(或2013) WebForm 4.5 开发中,很多控件默认Enable了 Unobtrusive ValidationMode(所谓Unobtrusive Validation,就是一种隐式的验证方式)的属性(和jquery的引用相关),但并未对其进行赋值, Programmer必须手动对其进行设置.比如,在进行数据验证时

SharePoint PeopleEditor控件使用

以下用于简要介绍在SharePoint 2016二次开发中如何使用PeopleEditor人员选择器,并采用前端的方式获取和设置值. 一.在使用的.aspx页面进行注册 <%@ Register TagPrefix="sp" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, Pu