2009-06-16 10 views
2

Ich habe Probleme herauszufinden, wie man einen benutzerdefinierten Spaltentyp zu einer Liste mit dem Objektmodell hinzufügt.sharepoint - Hinzufügen einer benutzerdefinierten Spalte zum Auflisten über Objektmodell

SPFieldCollection.Add() hat einen Parameter SPFieldType, der jedoch einer der aufgelisteten Werte in der Microsoft.SharePoint.SPFieldType-Enumeration sein muss. Daher kann er nicht zum Erstellen von Spalten eines benutzerdefinierten Typs verwendet werden.

Als nächstes versuchte ich mit SPFieldCollection.CreateNewField(), aber wenn ich SPField.Update() auf den zurückgegebenen Wert aufrufen, bekomme ich eine Ausnahme: "ArgumentException wurde nicht behandelt. Wert nicht innerhalb des erwarteten Bereichs.".

Ich sehe einen Verweis auf SPFieldCollection.AddFieldAsXml() hier: How do I add custom column to existing WSS list template aber es gibt kaum Informationen und ich bin nicht sicher, ob das die richtige Spur zu nehmen.

UPDATE: Ich habe einen Beitrag auf AddFieldAsXml: http://weblogs.asp.net/bsimser/archive/2005/07/21/420147.aspx gefunden und es stellt sich heraus, es ist sehr einfach und hat gut für mich gearbeitet. Nichtsdestotrotz in der Hoffnung, jemand anderen helfen zu können.

+0

Sie sollten wahrscheinlich die Lösung, die Sie gefunden haben, in eine Antwort verschieben. –

Antwort

1
Try with: 

SPField newField = null; 
newField= web.Fields.CreateNewField("MyFieldTypeName", fieldName); 
web.Fields.Add(newField); 

newField = web.Fields[fieldName]; 

// set some properties 
newField.ShowInDisplayForm = false; 
newField.ShowInViewForms = true; 
newField.Update(); 
Verwandte Themen