我爲ItemAdded創建了一個事件處理程序,以便在網站上添加項目時,我的代碼會檢查它是否是文件夾。如果是,它應該將該文件夾的內容類型更改爲自定義內容類型。Sharepoint事件處理程序未觸發
事件沒有發射,所以我想知道如果我是正確的方式和/或在正確的地方。這裏是我的代碼:
public class ItemAddedHandler : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
SPListItem listItem = properties.ListItem;
SPList list = properties.ListItem.ParentList;
SPContentType contentType;
if (listItem.FileSystemObjectType == SPFileSystemObjectType.Folder &&
(list.Title == "Apps" || list.Title == "Data" || list.Title == "Public"))
{
contentType = list.ContentTypes["Custom Folder"];
listItem["Content Type"] = contentType.Name;
listItem["Content Type ID"] = contentType.Id.ToString();
listItem.SystemUpdate();
}
}
}
請讓我知道如果我做錯了任何事情來完成這項任務。首先十分感謝。
按照要求,特徵是用下面的方法加入:
- 簽名和上述代碼編譯和複製DLL到服務器
- 複製DLL到GAC
創建文件夾:C:\程序Files \ Common Files \ Microsoft Shared \ web server extensions \ 12 \ TEMPLATE \ FEATURES \ SPEventHandler 4.使用Visual Studio生成的GUID創建Feature.xml:
<?xml version="1.0" encoding="utf-8" ?> <Feature Scope="Web" Title="Added Event Handler" Id="{27C2FDFF-ADA0-4984-955C-6448E182FA88}" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="Elements.xml"/> </ElementManifests> </Feature>
5.Created Elements.xml的使用DLL在GAC和ListTemplateID的公鑰對與文檔庫(101)的工作:
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListTemplateId="101">
<Receiver>
<Name>AddedEventHandler</Name>
<Type>ItemAdded</Type>
<SequenceNumber>10000</SequenceNumber>
<Assembly>SPEventHandler, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=f2e7de6c4a924a03</Assembly>
<Class>SPEventHandler.ItemAddedHandler</Class>
<Data></Data>
<Filter></Filter>
</Receiver>
</Receivers>
</Elements>
- 然在服務器上的以下命令:
stsadm -o installfeature -filename SPEventHandler \ Feature.xml
- 在站點(SP 2007)上,站點操作 - >站點設置 - >修改所有站點設置 - >站點功能並激活「添加事件處理程序」
完成這些步驟之後,在本網站的列表中創建一個新項目似乎沒有做任何事情,包括寫入事件日誌,所以我想知道它是否甚至可以運行。
感謝
我知道這是一個編程問題,但可能值得一提的是,您可能會在此處獲得更好的回覆:http://sharepoint.stackexchange.com/ – JonH 2011-06-02 13:33:11
是的,我一直在那裏嘗試。謝謝。 – 2011-06-02 16:04:00
我覺得你的痛苦我已經做了一段時間的分享,沒有足夠的資源或對此有多少了解的人。您可以混合使用管理員,開發人員等。 – JonH 2011-06-02 16:07:24