2009-06-16 12 views
2

オブジェクトモデルを持つリストにカスタムの列型を追加する方法がわかりません。sharepoint - オブジェクトモデルを使用してリストするカスタム列を追加します。

SPFieldCollection.Add()にはSPFieldTypeパラメータがありますが、これはMicrosoft.SharePoint.SPFieldType列挙型の列挙値の1つである必要があります。したがって、カスタム型の列の作成には使用できません。

私はSPFieldCollection.CreateNewField()を使用して次にしようとしましたが、返された値でSPField.Update()を呼び出すと、例外が発生しました: "ArgumentExceptionが処理されませんでした。

ここにはSPFieldCollection.AddFieldAsXml()の参照があります:How do I add custom column to existing WSS list templateがありますが、情報はほとんどなく、正しいトラックであるかどうかはわかりません。

更新:AddFieldAsXmlの投稿を見つけました:http://weblogs.asp.net/bsimser/archive/2005/07/21/420147.aspxと非常に簡単で、うまく機能しています。とにかく誰かを助けることを期待して投稿する。

+0

あなたはおそらく答えに移動する必要があります。 –

答えて

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(); 
関連する問題