1

私の環境はsharepoint 2010とvs 2010です。

使用している OOTB ドキュメント ライブラリが既にあり、METADATA 列にタグまたはキーワードを追加する方法を知りたいと思っていました。

すべてのサブサイトで同じドキュメント ライブラリを使用しているため、アップロードされたドキュメントに現在のサイトの名前をタグ付けしたいと考えています (つまり、サブサイトで使用されている場合、そのサブサイトの名前がタグになります)。

カスタム ドキュメント ライブラリまたは既存のドキュメント ライブラリに接続する何らかのアドオン Web パーツを作成する必要がありますか?

いくつかのコードサンプルを提供していただければ幸いです。

ありがとう、

KS

4

1 に答える 1

0

ゼロから始める場合は、組み込みのコンテンツタイプDocument(Documentの子コンテンツタイプ)に基づいてカスタムコンテンツタイプを作成できます。コンテンツタイプにカスタムフィールドを追加します。コンテンツタイプの作成の詳細については、http://msdn.microsoft.com/en-us/library/gg295290.aspxを参照してください。

コンテンツタイプには、ItemAdding、ItemUpdatedなどのカスタムイベントレシーバーを含めることもできます。以下のxmlを確認してください。

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType ID="0x010100xxxxxx"
Name="MyContentType"
Group="My custom group" Version="0" Inherits="True" Overwrite="TRUE" >
    <FieldRefs>
     <FieldRef ID="{AC8A823D-EB2F-4D4D-8BF0-14CACA509539}" Name="myMetadataField" Required="FALSE" />
    </FieldRefs>
    <XmlDocuments>
      <XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/events">
        <spe:Receivers xmlns:spe="http://schemas.microsoft.com/sharepoint/events">
          <Receiver>
            <SequenceNumber>1010</SequenceNumber>
            <Name>HandoverOffshore_ItemAddedReceiver</Name>
            <Type>ItemAdded</Type>
            <Assembly>MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=79315a88caec227a</Assembly>
            <Class>MyAssembly.CustomEventReceivers</Class>
          </Receiver>
        </spe:Receivers>
      </XmlDocument>
    </XmlDocuments>
  </ContentType>
</Elements>

次に、カスタムイベントを処理するイベントレシーバークラスwitchを作成する必要があります。

public class HandoverOffshoreEventReceivers : SPItemEventReceiver
{
        public override void ItemAdded(SPItemEventProperties properties)
        {
// your code for updating metadata field here...
        }
}

次に、これをサイトコレクションに展開し、このコンテンツタイプをすべてのライブラリに追加します。また、これをすべてのライブラリのデフォルトのコンテンツタイプとして設定します。

多くのライブラリを作成する場合は、このコンテンツタイプに基づいてカスタムライブラリ定義を作成することを検討する必要があります。

このカスタムイベントを既存のドキュメントに対して発生させる場合は、コンテンツタイプをここで作成した新しいドキュメントに変更する必要があります。

ドキュメントライブラリのコンテンツタイプは、サイトコレクションのコンテンツタイプの子コンテンツタイプであることに注意してください。

于 2012-05-29T20:59:42.707 に答える