2

Sharepoint 機能を作成しています。この機能にはイベント レシーバーが関連付けられています。イベント レシーバーでは、サーバー側オブジェクト モデルを使用してドキュメント ライブラリと画像ライブラリを作成しています。また、これらの新しく作成されたドキュメントと画像ライブラリに新しいカスタム列 (約 80) を追加しています。ここで、既定で画像ライブラリと共に作成される [説明]、[キーワード]、および [タイトル] フィールドのプロパティを変更したいと考えています。これらのフィールドを必須フィールドにしたいと思います。どうすればいいですか?SPList.AllowContentTypes = true を設定して、これらのフィールドの属性を変更しようとしましたが、機能しません (エラーも発生せず、これらの必須フィールドも作成しません)。また、コンテンツ タイプにアクセスして、SPContentType.FieldsLinks["Column_name"].Required および SPContentType を使用して属性を変更しようとしました。Fields["Column_name"].Required ですが、エラーが発生します。他に提案はありますか?

4

4 に答える 4

2

これが答えです....

SPContentType ct = mypiclib.ContentTypes["Picture"];
SPFieldLinks titleLink = ct.FieldLinks["Title"];
SPFieldLinks descLink = ct.FieldLinks["comments"]; //internal name of Description
SPFieldLinks keywords = ct.FieldLinks["keywords"];
titlelink.Required = true;
descLink.Required = true;
keywords.Required = true;
ct.Update();
于 2011-11-04T03:54:26.380 に答える
0

これでうまくいくはずです:

SPWeb yourWeb =  ... //assign your web
SPList yourPictureLibrary = ... //assign your picture library

web.AllowUnsafeUpdates = true;
yourPictureLibrary.Fields[SPBuiltInFieldId.Title].Required = true;
yourPictureLibrary.Fields[SPBuiltInFieldId.Description].Required = true;
yourPictureLibrary.Fields[SPBuiltInFieldId.Keywords].Required = true;
yourPictureLibrary.Update();
于 2011-11-03T18:59:31.097 に答える
0

フィールドリンクを使用しようとしたときに発生したエラーを教えていただけますか? これはうまくいくはずなので...私は次のようにしました:

SPContentType ct = web.Lists["*ListName*"].ContentTypes["*ContentTypeName*"];
SPFieldLinkCollection flinks = ct.FieldLinks;
flinks["*ColumnName*"].Required = true;
ct.update();
于 2011-11-03T12:03:40.770 に答える
0

SPAllowContentTypesは設定できません。代わりにContentTypesEnabledを設定してみてください。

テストする 2010 ボックスはありませんが、SPAllowContentTypesが false を返す場合は、14 ハイブ (TEMPLATE\FEATURES\PictureLibrary\PicLib) 内の画像ライブラリの定義を変更して、現在のものを取得しようとしていると思います。後。そこを軽く踏む。

于 2011-11-03T20:00:37.660 に答える