2009-07-21 5 views
0

Я использую следующий код, чтобы получить необходимую SPtemplate:
SPListTemplate template = RootWeb.ListTemplates["TaskTemplate"];Как получить доступ к шаблону программно?

Однако это утверждение бросает следующее сообщение об ошибке:
Value does not fall within the expected range.

Как получить доступ шаблон с именем TaskTemplate?

ответ

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"]; 
+0

спасибо, что это сработало – Azra

0

Звучит как шаблон списка, который вы пытаетесь использовать, не существует. Есть несколько вещей, чтобы посмотреть на:

  1. Вы создаете свой список на корневом сайте (т. Е. RootWeb)? Если вы создаете список на субсайте, вы должны получить SPListTemplate с того же сайта, на котором вы создаете этот список.

  2. Если вы уверены, что создаете список в одном и том же на котором вы извлекаете шаблон списка, затем проверьте, активированы ли какие-либо функции, содержащие определение списка, с которым вы работаете. Когда функция активирована, определение списка (т. Е. SPListTemplate) добавляется в доступные шаблоны списка текущего сайта.

  3. Я предполагаю, что «TaskTemplate» относится к встроенному определению списка задач SharePoint - если это пользовательское определение, игнорируйте это. В противном случае правильное имя, которое вы должны использовать, - «Задачи».

+0

Упс! Я пропустил, что «TaskTemplate» был настраиваемым шаблоном. См. Ответ kusek о том, как получить это. – dariom

Смежные вопросы