zoukankan      html  css  js  c++  java
  • SharePoint 2013 Create Folder with conententtype programer

           记录一下昨天写的SharePoint tool,需求是这样的:

           在SharePoint list subfolder 下创建1000个folder,这些folder指定特殊的contenttype,contenttype中有一个Taxonomy类型的field,为这个filed赋值,并且新创建的这些folder下只能创建指定contenttype的file。

           创建folder的代码如下:

            

     public static void CreatFolder(string siteUrl)//传入site url
            {
                using (SPSite site = new SPSite(siteUrl))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPList list = web.Lists.TryGetList("your list title");
                        if (list != null)
                        {
                            SPSecurity.RunWithElevatedPrivileges(() =>
                            {
                                web.AllowUnsafeUpdates = true;
                                SPFolder BAFolder = list.RootFolder.SubFolders.Cast<SPFolder>().
                                    FirstOrDefault(f => f.Name.Equals("your folder name or root folder", StringComparison.OrdinalIgnoreCase));
                                if (BAFolder.Exists)
                                {
                                    TaxonomyFieldValue taxonomyFieldValue = GetTaxonomyFieldValue(site, list);
                                    for (int i = 100000; i < 101001; i++)
                                    {
                                        string gvName = "GV" + i;
                                        SPListItem newItem = list.Items.Add(BAFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, gvName);
                                        newItem[SPBuiltInFieldId.ContentTypeId] = list.ContentTypes["your content type name"].Id;
                                        newItem.Update();
                                        newItem["Title"] = gvName;
    //为Taxonomy field 赋值 newItem[
    "your taxonomy field internal name"] = taxonomyFieldValue; newItem.Update(); list.Update();
    //为新创建的folder指定UniqueContentTypeOrder即在new folder下只能创建UniqueContentTypeOrder中包含的contenttype类型的file or folder SPFolder gvFolder
    = newItem.Folder; Collection<SPContentType> gvFolderOrderedContentTypes = new Collection<SPContentType>(); for (int j = 0; j < list.ContentTypes.Count; j++) { if (list.ContentTypes[j].Name == "your contenttype name") { gvFolderOrderedContentTypes.Add(list.ContentTypes[j]); } } gvFolder.UniqueContentTypeOrder = gvFolderOrderedContentTypes; gvFolder.Update(); } } web.AllowUnsafeUpdates = false; }); } } } }
     private static TaxonomyFieldValue GetTaxonomyFieldValue(SPSite site, SPList list)
            {
                TaxonomySession session = new TaxonomySession(site);
                TermStore termStore = session.TermStores["Managed Metadata Service"];
                Group group = termStore.Groups["group name"];
                TermSet termSet = group.TermSets["termset name"];
                Term term = termSet.Terms["term name"];
                
    //获取TaxonomyFieldValue TaxonomyField taxonomyField
    = list.Fields["your taxonomy field name"] as TaxonomyField; TaxonomyFieldValue taxonomyFieldValue = new TaxonomyFieldValue(taxonomyField); taxonomyFieldValue.TermGuid = term.Id.ToString(); taxonomyFieldValue.Label = term.Name; return taxonomyFieldValue; }

    希望对大家有所帮助!

  • 相关阅读:
    如何下载Bilibili视频
    pyqt5 主界面打开新主界面、打开Dialog、打开提示框的实现模板
    【爬坑】python3+pyqt5+pyinstaller 打包成exe的各种问题
    【PyQt5-Qt Designer】QComboBox(下拉列表框) 使用模板
    【PyQt5-Qt Designer】读取txt文件在打印
    pyqt5核心-信号与槽(第二弹)
    使用QT设计师-信号和槽signal-slot(第一弹)
    【python基础】python程序打包成.exe运行时会弹出黑框
    【pyqt5】QdateTimeEdit(日期时间)
    pyqt5-对文本样式进行操作
  • 原文地址:https://www.cnblogs.com/qindy/p/6272333.html
Copyright © 2011-2022 走看看