Sharepoint 如何从列表模板(客户端对象模型)创建新列表

Sharepoint 如何从列表模板(客户端对象模型)创建新列表,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我正在基于自定义列表模板创建列表。正在创建列表,但自定义列表模板未应用于“我的列表” ListTemplate template = null; ListTemplateCollection ltc = context.Site.GetCustomListTemplates(context.Web); context.Load(ltc); context.ExecuteQuery(); foreach (ListTemplate t in ltc) { if (t.Internal

我正在基于自定义列表模板创建列表。正在创建列表,但自定义列表模板未应用于“我的列表”

ListTemplate template = null;
ListTemplateCollection ltc = context.Site.GetCustomListTemplates(context.Web);
context.Load(ltc);
context.ExecuteQuery();  

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

ListCreationInformation info = new ListCreationInformation();
info.Title = "TestCreation";
info.TemplateType = template.ListTemplateTypeKind;
info.TemplateFeatureId = template.FeatureId;           
info.QuickLaunchOption = QuickLaunchOptions.DefaultValue;
site.Lists.Add(info);
context.ExecuteQuery();

如何修改我的代码以应用自定义列表?

试试下面给出的代码。它应该对你有用。如果您遇到任何问题,请告诉我

ClientContext context = new ClientContext("<Your Site URL>");
Web site = context.Web;            
context.Load(site);
context.ExecuteQuery();

//Create a List.
ListCreationInformation listCreationInfo;
List list;

listCreationInfo = new ListCreationInformation();
listCreationInfo.Title = "<Your Title>";
listCreationInfo.Description = "<Your Description>";

var listTemplate = 
            site.ListTemplates.First(listTemp => listTemp.Name == "<Your Template Name>");
listCreationInfo.TemplateFeatureId = listTemplate.FeatureId;

list = site.Lists.Add(listCreationInfo);
context.ExecuteQuery();
ClientContext=newclientcontext(“”);
Web站点=context.Web;
上下文。加载(站点);
context.ExecuteQuery();
//创建一个列表。
ListCreationInformation listCreationInfo;
名单;
listCreationInfo=新建ListCreationInformation();
listCreationInfo.Title=“”;
listCreationInfo.Description=“”;
变量列表模板=
site.ListTemplates.First(listTemp=>listTemp.Name==“”);
listCreationInfo.TemplateFeatureId=listTemplate.FeatureId;
list=site.Lists.Add(listCreationInfo);
context.ExecuteQuery();
根据微软:


TemplateFeatureId=获取或设置一个值,该值指定包含新列表的列表架构的功能的功能标识符

首先,检查模板对象时不能为空,因此,您很可能没有实际获取所需的模板。其次,在我看来,这不像是一个列表模板名称。这一个几乎适用于我。我只需要添加listCreationInfo.TemplateType=listTemplate.ListTemplateTypeKind;在“访问应用程序”列表和其他一些列表中,这对我不起作用。此外,ClientContext实现IDisposable,因此请确保在上下文对象上使用“using”语句。