2009-08-07 4 views
6

क्या हम कोई इवेंट्रेसीवर लिख सकते हैं जो किसी भी सूची को अद्यतन होने पर निकाल दिया जाता है। listtemplateid जिसे हमें इवेंट्रेसीवर के लिए निर्दिष्ट करना है, हमारे कोड को सूची की एक नस्ल के लिए specefic बनाता है। क्या होगा यदि हम साइट की सभी सूचियों पर ईवेंट के लिए कोड निष्पादित करना चाहते हैं?किसी शेयरपॉइंट साइट की सभी सूचियों के लिए EventReceiver संलग्न करें

उत्तर

8

मेरे पास एक ही सटीक आवश्यकता है।

शायद यह प्रणाली ContentType को घटना रिसीवर संलग्न करने के लिए संभव है (सभी प्रकार की सामग्री के वारिस एक है कि, आईडी 0x से)

एक FeatureReceiver के साथ एक फ़ीचर बनाने और प्रोग्राम के रूप में जोड़कर कि यदि संभव है की जाँच मैं `घ सिस्टम सामग्री प्रकार। कुछ विवरण here

एक समाधान

Allright खोजने पर मेरे पथ, मैं सांत्वना अनुप्रयोग के साथ कुछ परीक्षण किया था।

  1. प्रणाली (0x)-EventReceiverजोड़ने की कोशिश की। कॉल की गई सामग्री ContentType.Update (true, false) जो सभी बाल तत्वों को अद्यतन करता है - और न ही सिस्टम ContentType अपडेट किया गया, न ही बच्चे। यह पता चला है कि आप उन सामग्री को संशोधित नहीं कर सकते हैं ReadOnly के साथ टाइप करें || Sealed विशेषता TRUE
  2. पर आइटम (0x01) ContentType पर EventReceiver जोड़ने का प्रयास किया गया। जैसा कि यहां से देखा गया है, सभी ContentTypes अभी भी उस से प्राप्त होते हैं (ContentType hierarchy देखें)। सिस्टम से प्राप्त होने वाले कस्टम तैनात सामग्री प्रकार हो सकते हैं, लेकिन जीयूआई में किए गए नहीं। अद्यतन कर रहा है इस सामग्री प्रकार सही मायने में (उन ReadOnly या Sealed को छोड़कर सभी सामग्री प्रकार) सभी बच्चे ContentTypes अद्यतन

सभी आइटम

तो एक समाधान है जो इस प्रकार दिखाई देगा काम करेगा करने के लिए एक वैश्विक EventReceiver कैसे संलग्न करें:

  1. दोहराएं सभी सूचियों, गलत पर Readonly या Sealed सेट करते हैं तो क्या आप EventReceivers के साथ उन सामग्री प्रकार चाहते हैं।
  2. 0x01 तो नई सूचियों EventReceiver स्वचालित रूप से जोड़ पाने आईडी के साथ सूची (SPList.ContentTypes)
  3. ContentType (SPWeb.ContentTypes) को EventReceiver जोड़े में अपने EventReceiver करने के लिए मौजूदा सामग्री प्रकार जोड़ें। नए बनाए गए सामग्री प्रकार भी EventReceivers का उत्तराधिकारी होंगे। इसके अलावा सभी subweb ContentTypesEventReceivers उत्तराधिकारी हैं।

सभी तीन चरणों एक सांत्वना आवेदन या 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 विशेषता वाले लोगों को देख सकते हैं विशेषता झूठी नहीं है।

संबंधित मुद्दे