2009-07-21 19 views
0

ich den folgenden Code bin mit dem erforderlichen SPtemplate zu erhalten:
SPListTemplate template = RootWeb.ListTemplates["TaskTemplate"];Wie kann ich programmgesteuert auf eine Vorlage zugreifen?

diese Aussage jedoch führt den folgenden Fehler:
Value does not fall within the expected range.

Wie greife ich auf die Vorlage mit dem Namen TaskTemplate?

Antwort

3

Mit Blick auf den Namen Ihrer Vorlage würde ich sagen, dass das Ihre benutzerdefinierte Vorlage ist. Um auf die benutzerdefinierte Vorlage zuzugreifen, müssen Sie den folgenden Code verwenden.

//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

danke es funktionierte – Azra

0

Es klingt, als ob die Listenvorlage, die Sie verwenden möchten, nicht existiert. Es gibt ein paar Dinge zu betrachten:

  1. Erstellen Sie Ihre Liste innerhalb der Root-Site (d. H. RootWeb)? Wenn Sie eine Liste in einer Unterwebsite erstellen, sollten Sie die SPListTemplate von der gleichen Website abrufen, in der Sie die Liste erstellen.

  2. Wenn Sie sicher sind, dass Sie die Liste innerhalb derselben erstellen Site, von der Sie die Listenvorlage abrufen, und überprüfen Sie, ob alle Funktionen aktiviert sind, die die Listendefinition enthalten, mit der Sie arbeiten. Wenn das Feature aktiviert ist, wird die Listendefinition (d. H. SPListTemplate) zu den verfügbaren Listenvorlagen der aktuellen Site hinzugefügt.

  3. Ich vermute, dass "TaskTemplate" verweist auf die integrierte SharePoint Aufgabenliste Definition - wenn es eine benutzerdefinierte Definition ist, ignorieren Sie dies. Andernfalls sollte der korrekte Name "Tasks" lauten.

+0

Hoppla! Ich habe übersehen, dass "TaskTemplate" eine benutzerdefinierte Vorlage war. Siehe kuseks Antwort, wie man das bekommt. – dariom

Verwandte Themen