我使用以下代码获取所需的SPtemplate:
SPListTemplate template = RootWeb.ListTemplates["TaskTemplate"];
但是这句话会引发以下错误:
Value does not fall within the expected range.
如何访问名为TaskTemplate的模板?
答案 0 :(得分:3)
通过查看模板的名称,我会说这是您的自定义模板。要访问自定义模板,您需要使用以下代码。
//This gives you only the built-in template or templates deployed using Features
foreach (SPListTemplate item in oWeb.ListTemplates)
{
Console.WriteLine(item.Name);
}
//This gives you the custom template created by you
foreach (SPListTemplate item in oSite.GetCustomListTemplates(oWeb))
{
Console.WriteLine(item.Name);
}
//So for your requirement you need to use
oSite.GetCustomListTemplates(oWeb)["TaskTemplate"];
答案 1 :(得分:0)
听起来您尝试使用的列表模板不存在。有几点需要注意:
您是否在根网站(即RootWeb)中创建了列表?如果您要在子站点中创建列表,则应从您创建列表的同一站点获取SPListTemplate
。
如果您确定要在从中检索列表模板的同一站点中创建列表,请检查包含您正在使用的列表定义的所有功能是否已激活。激活该功能后,列表定义(即SPListTemplate
)将添加到当前站点的可用列表模板中。
我猜“ TaskTemplate ”是指内置的SharePoint任务列表定义 - 如果是自定义定义,请忽略它。否则,您应该使用的正确名称是“任务”。