有人可以告诉我为什么这段代码不起作用? “添加代码”本身有效,但遗憾的是不在ItemAdded事件中。 我在ItemAdded事件中需要这个代码,因此我不能使用ItemAdding。
感谢您的帮助。
public override void ItemAdded(SPItemEventProperties properties)
{
SPSite site = new SPSite("http://air_sim:39167/");
SPWeb web1 = site.RootWeb;
SPList List = web1.Lists["Announcements"];
SPListItem newitem = List.Items.Add();
newitem["Title"] = "Example";
newitem.Update();
}
答案 0 :(得分:3)
您是否已采取任何措施将事件接收器附加到列表中?
如果不是,您可以安装一个功能来管理事件接收器和 验证是否添加了事件接收器,如果没有,请手动添加: http://chrissyblanco.blogspot.com/2007/08/event-receiver-management.html
顺便说一句,properties变量包含许多有用的属性:
SPListItem newitem = properties.List.Items.Add();
newitem["Title"] = "Example";
newitem.Update();
答案 1 :(得分:0)
您使用的是Sharepoint 2010还是Sharepoint2007? 你使用的是VS2008还是VS2010? 如果您无法使用调试器,请使用EventLog:
public override void ItemAdded(SPItemEventProperties properties)
{
EventLog.WriteEntry("DebugSharepoint", "ItemAdded fired");
try
{
SPSite site = new SPSite("http://air_sim:39167/");
SPWeb web1 = site.RootWeb;
SPList List = web1.Lists["Announcements"];
SPListItem newitem = List.Items.Add();
newitem["Title"] = "Example";
newitem.Update();
}
catch(Exception e)
{
EventLog.WriteEntry("DebugSharepoint", e.Message, EventLogEntryType.Error);
}
}
答案 2 :(得分:0)
附加调试器。 转到cmd并键入iisapp。您将获得工作进程ID。 然后打开事件处理程序项目并转到工具并附加进程并在ItemAdded和ItemAddding事件上设置调试点
答案 3 :(得分:0)
尝试以下解决方案:
SPSite site = new SPSite("site address");
SPWeb web1 = site.RootWeb;
SPList List = web1.Lists["Announcements"];
web1.AllowUnsafeUpdates = true;
SPListItem newitem = List.Items.Add();
newitem["Title"] = "Example";
newitem.Update();
web1.AllowUnsafeUpdates = false;