سؤال

هل يمكننا كتابة EventReceiver التي يتم إطلاقها عند تحديث أي قائمة. يقوم ListTemPlateID بحيث يتعين علينا تحديده للحصول على EventReceiver يجعل Code Penefic الخاص بنا إلى سلالة واحدة من القوائم. ماذا لو أرغبنا في تنفيذ التعليمات البرمجية للأحداث في جميع قوائم الموقع؟

هل كانت مفيدة؟

المحلول

لدي نفس المتطلبات الدقيقة.

ربما من الممكن إرفاق جهاز استقبال الحدث إلى النظام ContentType (جميع أنواع المحتويات ترث ذلك واحد، مع ID 0X)

أتحقق من ذلك ما إذا كان ذلك ممكنا من خلال إنشاء ميزة بمثابة ميزة، وإضافته برمجيا إلى نوع محتوى النظام. بعض التفاصيل هنا.

طريقي في العثور على حل

AllRight، فعلت بعض الاختبارات مع تطبيق Console.

  1. حاول أن أضيف EventReceiver النظام (0x). وبعد استدعاء الأسلوب contenttype.update (صحيح، خطأ) الذي يقوم بتحديث جميع عناصر الأطفال - ولا النظام ContentType تحديث، ولا تشايلدز. وبعد اتضح أنه لا يمكنك تعديل تلك contenttypes مع ReadOnly || Sealed سمة مجموعة على TRUE
  2. حاول إضافة EventReceiver إلى البند (0x01) ContentType. وبعد كما رأينا من هنا، كل شيء ContentTypes لا يزال يرث من ذلك واحد (انظر contenttype التسلسل الهرمي). قد يكون هناك أنواع محتوى مخصصة التي ترثت من النظام، ولكن ليس تلك التي صنعت في واجهة المستخدم الرسومية. تحديث نوع المحتوى هذا محدث حقا كل الأطفال ContentTypes (جميع أنواع المحتوى باستثناء تلك ReadOnly أو Sealed)

كيفية إرفاق EventReceiver عالمي لجميع العناصر

وبالتالي فإن الحل الذي سيعمل سيبدو هكذا:

  1. تكرار جميع القوائم، مجموعة Readonly أو Sealed إلى False إذا كنت تريد أن تكون أنواع المحتوى هذه معك EventReceivers.
  2. إضافة الخاصة بك EventReceiver إلى أنواع المحتوى الموجودة في القوائم (SPList.ContentTypes)
  3. أضف EventReceiver إلى ContentType (SPWeb.ContentTypes) مع ID 0x01 حتى قوائم جديدة تحصل على EventReceiver المضافة تلقائيا. أنواع المحتوى المنشأة حديثا سوف ترث أيضا EventReceivers. وبعد أيضا كل الوظائف الفرعية ContentTypes يرث EventReceivers.

يمكن أن تكون جميع الخطوات الثلاث تطبيق وحدة التحكم أو البرنامج النصي 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 الخاصة بي، ولكن {،،،، ...} يعني أنني أضيفت العديد من EventReceivers أنواع المحتوى. كما ترون أولئك Readonly أو Sealed السمة كاذبة لا يمولة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top