2009-09-30 66 views
0

我已經爲文檔庫創建了一個項目事件接收器,並且測試了邏輯工作正常,並且它都做到了。我想要做的是自動創建列表創建網站時,接下來的事情,所以我說列表中,爲現場Onet.xml文件:SharePoint項目事件接收器和網站創建

<Lists> 
    <List Title="Documents" Description="Documents " url="MyDocumentLibrary" Type="10002" FeatureId="CFD8504D-70EB-4ba2-9CCB-52E38DB39E60" QuickLaunchUrl="Docs/AllItems.aspx" /> 
</Lists> 

而且我保證此列表的功能也BE添加功能將

<WebFeatures> 
    <Feature ID="CFD8504D-70EB-4ba2-9CCB-52E38DB39E60" /> 
</WebFeatures> 

我創建網站後出現的問題,當我添加一個文件到列表項事件接收器不運行激活。但是,如果我手動輸入網站功能並取消激活,然後重新激活項目事件接收器運行的功能。似乎在通過ONET.xml創建列表並激活該功能時,它不會將Item事件接收器綁定到列表。這是什麼工作?這是一個錯誤?

回答

0

這可能是site provisioning order的問題。具體來說,網頁功能在列表存在之前即被激活。

+0

這是我的想法,但想你會怎麼做這個手工我認爲這沒有什麼意義。在手動過程中,我將不得不激活該功能,然後添加該列表,這是相同的訂單網站創建意圖發生在 –

0

中的代碼片段,我可以看到你的自定義列表類型類型=「10002」在這種情況下,你可以在事件處理程序使用具有的元素清單XML以下項目的另一個特點很容易聯想到列表

<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
<Receivers ListTemplateId="10002">   
    <Receiver> 
     <Name>AddedEventHandler</Name> 
     <Type>ItemAdded</Type> 
     <SequenceNumber>10000</SequenceNumber> 
     <Assembly>full assembkly</Assembly> 
     <Class>Class of the event handler</Class> 
     <Data></Data> 
     <Filter></Filter> 
    </Receiver> 
</Receivers> 

  1. 還要注意的是,上述特徵必須是網絡作用域
  2. 都是基於類型創建列表10002會有這樣的事件處理程序插入到他們
  3. 我一直在做這個和它的作品,沒有競爭條件
+0

這是我如何設置,但共享點似乎並沒有綁定事件時,列表是創建 –

相關問題