首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将EventReceiver附加到sharepoint网站的所有列表

将EventReceiver附加到sharepoint网站的所有列表
EN

Stack Overflow用户
提问于 2009-08-07 07:22:02
回答 1查看 3.2K关注 0票数 6

我们能不能写一个事件接收器,当任何列表更新时都会触发。我们必须为eventreceiver指定的listtemplateid使得我们的代码特定于一种列表。如果我们想要为所有站点列表上的事件执行代码,该怎么办?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-08-07 09:13:50

我也有同样的要求。

也许可以将事件接收器附加到系统ContentType (所有内容类型都继承该类型,id为0x)

我会通过创建一个带有FeatureReceiver的功能并以编程方式将其添加到系统内容类型来检查这是否可行。一些细节here

我的解决方案之路

好吧,我用控制台应用程序做了一些测试。

  1. 尝试将EventReceiver 添加到系统(0x)。调用方法ContentType.Update(true,false),它更新所有子元素-,也不更新System ,也不更新。原来,您不能修改那些将ReadOnly || Sealed属性设置为TRUE
  2. Tried的contentTypes,以将ContentType添加到项(0x01) ContentType中。从这里可以看出,所有的ContentTypes仍然继承自那个(参见ContentType hierarchy)。可能存在从系统继承的自定义部署内容类型,但不存在在GUI中创建的内容类型。更新此内容类型会真正更新所有子ContentTypes (除ReadOnlySealed)

之外的所有内容类型

如何将全局EventReceiver附加到所有项目

因此,一个可行的解决方案将如下所示:

  1. 迭代所有列表,如果您希望将这些内容类型与id为0x01的lists (SPList.ContentTypes)
  2. Add EventReceivers.
  3. Add to ContentType (SPWeb.ContentTypes)中的现有内容类型进行EventReceivers.
  4. Add,请将ReadonlySealed设置为false,以便新列表自动添加EventReceiver。新创建的内容类型也将继承EventReceivers。此外,所有子网站ContentTypes都继承了EventReceivers.

这三个步骤都可以是控制台应用程序或powershell脚本。或者是FeatureReceiver的站点集合范围的特性

结果

代码语言:javascript
复制
    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是本地化的,但{,,,...}意味着我在内容类型中添加了几个eventreceivers。正如您所看到的,那些具有ReadonlySealed属性False的属性是未被触及的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1243406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档