Как создать список задач, используя сохраненный шаблон с помощью кода CSOM - PullRequest
0 голосов
/ 05 мая 2018

Я использовал приведенный ниже код для динамического создания tasklist для нескольких элементов списка sharepoint с использованием сохраненного шаблона. Я получаю существующий шаблон, но не могу создать список, используя шаблон. Как я могу создать tasklist? Вот мой код:

ctx.AuthenticationMode = ClientAuthenticationMode.Default;
                ctx.Credentials = new SharePointOnlineCredentials(GetSPUserName("SiteUserName"), GetSPpwd("SitePassword"));
                Web web = ctx.Web;
                ctx.Load(web,w=>w.ListTemplates);
                ctx.ExecuteQuery();
                ListTemplate template = null;
                ListTemplateCollection ltc = ctx.Site.GetCustomListTemplates(web);
                ctx.Load(ltc);
                ctx.ExecuteQuery();


            foreach (ListTemplate t in ltc)
            {
                if (t.InternalName == "Test.stp")
                {
                    template = t;
                    break;
                }
            }

            ListCreationInformation info = new ListCreationInformation();
            info.Title = "TestCreationOne";
            ctx.Load(template, tL => tL.Name, tL => tL.FeatureId, tL => tL.ListTemplateTypeKind);
            info.TemplateType = template.ListTemplateTypeKind;
            info.TemplateFeatureId = template.FeatureId;
            info.QuickLaunchOption = QuickLaunchOptions.DefaultValue;
            var list=web.Lists.Add(info);
            list.Update();
            ctx.Load(web.Lists);
            ctx.ExecuteQuery();
        }

Спасибо!

1 Ответ

0 голосов
/ 21 мая 2018

Ваш код, кажется, создает список, но не применяет шаблон к списку. Я упростил код, и он работал. Вот ссылка:

ctx.Credentials = new SharePointOnlineCredentials(GetSPUserName("SiteUserName"), GetSPpwd("SitePassword"));

ListTemplate listTemplate = ctx.Site.GetCustomListTemplates(ctx.Web).GetByName("Test");

ctx.Load(listTemplate);
ctx.ExecuteQuery();

ListCreationInformation info = new ListCreationInformation();
info.Title = "TestCreationOne";
info.ListTemplate = listTemplate;

var list = ctx.Web.Lists.Add(info);
ctx.Load(list);
ctx.ExecuteQuery();

Вопрос может быть повторен: https://sharepoint.stackexchange.com/q/104611/

...