如何以编程方式将标签添加到Sharepoint 2013中的List项目?

时间:2013-03-28 20:41:11

标签: sharepoint sharepoint-api sharepoint-2013

我想使用C#组件向Sharepoint 2013 App上的List项添加特定的主题标签。 我想模仿“标签和笔记板”功能。

我找到了如何在服务器上添加标签http://msdn.microsoft.com/en-us/library/ff770863.aspx,但是当我使用Sharepoint Online时,我需要使用客户端API。

2 个答案:

答案 0 :(得分:1)

我昨天偶然发现了这一点,现在无法访问devbox,但你应该开始寻找Microsoft.SharePoint.Client.Social

context.Load(context.Web);
SocialFeedManager socialFeedManager = new SocialFeedManager(context);

如果您没有打败我,我会在devbox再次联机的时候返回更多信息! :)

答案 1 :(得分:0)

我终于找到了方法:

public void AsyncEvent(SPRemoteEventProperties properties) {

    ...

    List lst = clientContext.Web.Lists.GetByTitle(properties.ItemEventProperties.ListTitle);
    clientContext.Load(lst);
    clientContext.ExecuteQuery();
    ListItem item = lst.GetItemById(properties.ItemEventProperties.ListItemId);

    clientContext.Load(item.ParentList, l => l.Fields.Where(field => field.Title == "FieldName"));
    clientContext.ExecuteQuery();

    foreach(TaxonomyField field in item.ParentList.Fields) {
         TaxonomyFieldValueCollection newTopics = new TaxonomyFieldValueCollection(clientContext, String.Empty, field);
         newTopics.PopulateFromLabelGuidPairs("Term A Label|term-a-unique-id;Term B Label|term-b-unique-id");
         field.SetFieldValueByValueCollection(item, newTopics);
    }

    item.Update();
    clientContext.ExecuteQuery();

如果你找到了更好的解决方案,请发布,这个很好用。

如果您想知道如何格式化“Term Label | term-unique-id”,请查看Sharepoint Admin页面下的Taxonomy Term Store。术语的唯一id样本:d5e733d2-a904-4bee-afbd-632440fdc125。