我使用以下代码使用保存的模板动态地为多个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();
}
谢谢!
答案 0 :(得分:0)
您的代码似乎创建了列表,但未将模板应用于列表。我简化了代码并且工作正常。这是一个参考:
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/