Если вам нужно найти все списки созданные на базе, например, шаблона "Задачи" (tasks), то, прежде всего, нужно знать ID типа шаблона (можно подглядеть вот тут: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splisttemplatetype.aspx )
Зная ID шаблона можно сделать вот так:
foreach (SPList list in SPContext.Current.Web.Lists) { //107 - шаблон tasks if (!list.Hidden & (int)list.BaseTemplate == 107) { //Мы нашли список на базе шаблона } }
Если же вы хотите найти списки, созданные на базе какого-то кастомного шаблона, то так просто это сделать не получится. В таком случае list.BaseTemplate все равно будет содержать идентификатор базового шаблона, на базе которого создан ваш шаблон. Поэтому, чтобы как-то определить на основе вашего шаблона создан список, или на основе базового, то нужно ввести в шаблон что-то уникальное, например, добавить свой тип контента. Тогда, если базовый тип списка совпадает с базовым для вашего шаблона, то все что нужно остается - это проверить, содержит ли список ваш тип контента:
foreach (SPList list in SPContext.Current.Web.Lists) { if (!list.Hidden & (int)list.BaseTemplate == 107) { //если мы хотим найти лист, созданный на базе кастомного шаблона foreach (SPContentType cT in list.ContentTypes) { if (cT.Name == "MyNewContentType") //мы нашли необходимый нам список break; } } }
Комментариев нет:
Отправить комментарий