質問

リストが更新されたときに起動されるイベントレシーバーを作成できますか。イベントレシーバーに指定する必要がある listtemplateid により、コードは 1 種類のリストに特化したものになります。サイトのすべてのリストのイベントに対してコードを実行したい場合はどうすればよいでしょうか?

役に立ちましたか?

解決

私もまったく同じ要件を持っています。

イベントレシーバーをシステムにアタッチできる可能性があります ContentType (すべてのコンテンツ タイプは、ID 0x のコンテンツ タイプを継承します)

それが可能かどうかを確認するには、FeatureReceiver を使用してフィーチャーを作成し、それをプログラムでシステム コンテンツ タイプに追加します。いくつかの詳細 ここ.

解決策を見つけるまでの私の道のり

さて、コンソールアプリでいくつかのテストを行いました。

  1. 追加してみました EventReceiver システムへ (0x). 。すべての子要素を更新する ContentType.Update(true,false) メソッドを呼び出しました - システムも ContentType 更新も子もありません. 。これらの contentType を変更できないことがわかりました。 ReadOnly || Sealed に設定された属性 TRUE
  2. EventReceiver を項目 (0x01) に追加しようとしました ContentType. 。ここから見ると、すべて ContentTypes まだそのものを継承しています(を参照) ContentType 階層)。System から継承するカスタム展開されたコンテンツ タイプは存在する場合がありますが、GUI で作成されたコンテンツ タイプは存在しません。このコンテンツ タイプを更新すると、すべての子が実際に更新されます ContentTypes (これらを除くすべてのコンテンツ タイプ ReadOnly または Sealed)

グローバル EventReceiver をすべてのアイテムにアタッチする方法

したがって、機能する解決策は次のようになります。

  1. すべてのリストを繰り返し、設定します Readonly または Sealed これらのコンテンツ タイプを一緒に持ちたい場合は false に設定します EventReceivers.
  2. を追加してください EventReceiver リスト内の既存のコンテンツ タイプ (SPList.ContentTypes)
  3. EventReceiver を ContentType に追加 (SPWeb.ContentTypes) ID が 0x01 であるため、新しいリストには EventReceiver が自動的に追加されます。新しく作成されたコンテンツ タイプも継承されます EventReceivers. 。すべてのサブウェブも ContentTypes 継承する EventReceivers.

3 つのステップはすべて、コンソール アプリケーションまたは PowerShell スクリプトにすることができます。または、サイト コレクション全体の機能 FeatureReceiver

結果

    PS C:\Documents and Settings\Administrator> $web.contentTypes |ft id, name, EventReceivers, readonly, sealed

Id                      Name                    EventReceivers                         ReadOnly                  Sealed
--                      ----                    --------------                         --------                  ------
0x                      Sistēma                 {}                                        False                    True
0x007F1DD730DB144C84... Darba kārtības vēsture  {}                                         True                    True
0x01                    Ieraksts                {, , , ...}                               False                   False
0x01003420C661289843... Darba kārtības ieraksts {, , , ...}                               False                   False
0x0101                  Dokuments               {, , , ...}                               False                   False
0x010100629D00608F81... Office datu savienoj... {}                                         True                   False
0x010100B4CBD48E029A... Universālais datu sa... {}                                         True                   False
0x010101                Veidlapa                {, , , ...}                               False                   False
0x010102                Attēls                  {, , , ...}                               False                   False
0x010104                Nezināms dokumenta tips {}                                         True                   False
0x010105                Lapu šablons            {, , , ...}                               False                   False
0x010107                Lietotāja darbplūsma... {, , , ...}                               False                   False
0x010108                Wiki lapa               {, , , ...}                               False                   False
0x010109                Pamatlapa               {, , , ...}                               False                   False
0x01010901              Web daļu lapa           {, , , ...}                               False                   False
0x01010A                Saistīt ar dokumentu    {, , , ...}                               False                   False
0x01010B                Dublinas pamata kolo... {, , , ...}                               False                   False
0x0102                  Notikums                {, , , ...}                               False                   False
0x0103                  Diskutējamais jautājums {, , , ...}                               False                   False
0x0104                  Paziņojums              {, , , ...}                               False                   False
0x0105                  Saite                   {, , , ...}                               False                   False
0x0106                  Kontaktpersona          {, , , ...}                               False                   False
0x0107                  Ziņojums                {, , , ...}                               False                   False
0x0108                  Uzdevums                {, , , ...}                               False                   False
0x0108007122AD6D76CD... Darba kārtības uzdevums {, , , ...}                               False                   False
0x010801                Darbplūsmas uzdevums    {, , , ...}                               False                   False
0x010802                Administratīvs uzdevums {, , , ...}                               False                   False
0x0109                  Darbplūsmas vēsture     {, , , ...}                               False                   False
0x010A                  Person                  {, , , ...}                               False                   False
0x010B                  SharePointGroup         {, , , ...}                               False                   False
0x010C                  DomainGroup             {, , , ...}                               False                   False
0x0110                  Ziņa                    {, , , ...}                               False                   False
0x0111                  Komentārs               {, , , ...}                               False                   False
0x0116                  Tālo Austrumu līgums    {, , , ...}                               False                   False
0x0120                  Mape                    {}                                        False                    True
0x012001                RootOfList              {}                                        False                    True
0x012002                Diskusija               {, , , ...}                               False                   False

申し訳ありませんが、私の WSS はローカライズされていますが、{, , , ...} は、コンテンツ タイプにいくつかのイベントレシーバーを追加したことを意味します。ご覧のとおり、 Readonly または Sealed 属性 False は変更されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top