zoukankan      html  css  js  c++  java
  • sharepoint 2010 列表中托管元数据列赋值

    在开发中一直都是从解决一个个问题使得code能力有所提升,最近在sharepoint的开发中遇到一个难题。简单描述下。

    做了一个webpart,需要写入一个值到文档库的列,该列类型为托管元数据。当然,要写入的值是在术语集中已经存在的。Baidu,Goole了很多资料多没能解决我的问题,直到cnblog http://www.cnblogs.com/love007/archive/2012/12/06/2805381.html 才成功,非常感谢。我在他的方法上做了简化,目前解决了我的问题。

    思路如下,

    要想通过代码将术语写回到术语集,首先得构造一个该类型的值,然后在写回到托管元数据列。

    1. 定义元数据类

        

    /// <summary>
            /// 托管元数据
            /// </summary>
            public class SPTaxonomyEntity
            {
                /// <summary>
                /// 托管元数据的guid
                /// </summary>
                public string Guid
                {
                    get;
                    set;
                }
                /// <summary>
                /// 托管元数据的名称
                /// </summary>
                public string Name
                {
                    get;
                    set;
                }
            }

    2. 构建值并赋值

    #region//给托管元数据类型赋值
            /// <summary>
            /// 给托管元数据类型赋值
            /// </summary>
            /// <param name="site">当前网站集</param>
            /// <param name="list">当前列表</param>
            /// <param name="listItem">当前列表项</param>
            /// <param name="fieldDisplayName">当前栏目显示名称</param>
            /// <param name="taxName">节点元数据的名称</param>
            /// <param name="guid">所选元数据的GUID</param>
            private static void SetTaxonomyValue(SPSite site, SPList list, SPListItem listItem, string fieldDisplayName, string taxName,string guid)
            {
                try
                {
                    //得到值
                    SPTaxonomyEntity entity = new SPTaxonomyEntity();
                    entity.Guid = guid;
                    entity.Name = taxName;
                    //赋值
                    if (entity != null && !string.IsNullOrEmpty(entity.Guid))
                    {
                        //得到字段
                        TaxonomyField taxonomyField = list.Fields[fieldDisplayName] as TaxonomyField;
                        //字段类型值
                        TaxonomyFieldValue taxonomyFieldValue = new TaxonomyFieldValue(taxonomyField);
                        //赋值
                        taxonomyFieldValue.TermGuid = entity.Guid.ToString();
                        taxonomyFieldValue.Label = entity.Name;
                        //最后赋值
                        if (!string.IsNullOrEmpty(taxonomyFieldValue.Label))
                        {
                            listItem[listItem.Fields[fieldDisplayName].InternalName] = taxonomyFieldValue;
                        }
                    }
                }
                catch (Exception ex)
                {
                    VisualWebPartUploadUserControl.WriteMessageToText(DateTime.Now + "给托管元数据类型栏目[" + fieldDisplayName + "]赋值错误:" + ex.Message);
                }
            }
            #endregion

    以上关键代码通过调用后即可实现效果

  • 相关阅读:
    DPDK安装方法 17.12.13
    numa.h:No such file or directory 解决方法
    17秋 软件工程 第六次作业 Beta冲刺 Scrum3
    17秋 软件工程 第六次作业 Beta冲刺 总结博客
    17秋 软件工程 第六次作业 Beta冲刺 Scrum2
    Paper Reviews and Presentations
    17秋 软件工程 第六次作业 Beta冲刺 Scrum1
    17秋 软件工程 第六次作业 Beta冲刺
    error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.7/share': Operation not permitted
    17秋 软件工程 个人作业 软件产品案例分析
  • 原文地址:https://www.cnblogs.com/zchblog/p/3165061.html
Copyright © 2011-2022 走看看