2

WebMovedイベント で正常に起動しているSPWebEventReceiverを使用して特定のSPWebをリッスンしてい ます。Webが移動したら、新しい場所/タイトルでリストを更新します。

私がやりたいのは、Webの名前が変更されたときにリッスンすることです。これを行うには、アイテムリスナーをアタッチし、ItemUpdatedイベントを待ちますか?もしそうなら、私はコードの小さなスニペットをいただければ幸いです!ありがとう!

4

4 に答える 4

2

これはSharePointOMのバグのようです。イベントレシーバーは、Webの名前が変更されたときに起動するはずですが、起動しません。WebのURLが変更された場合にのみ起動します。

于 2009-04-13T14:31:54.910 に答える
0

スティーブ、私が見る限り、SPWebEventReceiverはSPWebで次のイベントのみを公開します(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spwebeventreceiver_members.aspx

  • SiteDeleted
  • SiteDeleting
  • WebDeleted
  • WedDeleting
  • WebMoved
  • WebMoving

ItemAddedは、SPListItemオブジェクトに適用可能なSPItemEventReceiverで定義されます。

SPWebのTitleプロパティは、プロパティバッグ(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.properties.aspx)に格納されます。

Titleが更新されたときなど、プロパティバッグで.Update()が呼び出されたときに、イベントを利用できるようには見えません。

于 2009-04-12T20:11:29.220 に答える
0
  1. Web 名の名前を変更すると、WebMoved がトリガーされるはずです。
  2. サイトのタイトルの名前を変更しても、アクションはトリガーされません。

質問: 利用したい変更は何ですか? たとえば、メタデータは内部のリストに格納できるため、多くのイベントがサポートされます。

于 2009-04-15T20:47:24.710 に答える
0

これはバグではないと思います。単にドキュメントの解釈が間違っているだけだと思います。あなたが述べたように、ドキュメントは、 WebMoving および WebMoved イベントが、変更または名前変更されたサイトの URL によってトリガーされることを示しています。

MSDN Docから:「既存の Web サイトの名前が変更されるか、別の親オブジェクトに移動される前に発生する Synchronous Before イベント。」

ただし、UI で変更されるのはサイトの「名前」ではなく、サイトのタイトルです。SPWeb オブジェクトには、オブジェクト モデルを介してアクセスできる "Name" プロパティがあり、その Name プロパティを更新して SPWeb.Update() を呼び出すと、実際に WebMoved イベントがトリガーされます。問題は、このプロパティがサイトの Web ベースの設定ページで公開されておらず、「タイトル」フィールドのみが公開されており、このフィールドの変更によってイベントがトリガーされないことです。これは少し直感に反し、誤解を招くようにも思えますが、ドキュメントを文字通り読むと、ドキュメントどおりに動作しています。

于 2014-10-30T20:28:28.660 に答える