Sharepoint - 项目添加的eventhandler属性不起作用

时间:2011-07-27 08:34:47

标签: sharepoint sharepoint-2007

我已经开始编写事件处理程序。 起初我将一些项添加到具有硬编码值的列表中。 一切正常,但后来我转而使用properties.OpenWeb()并尝试使用web.Url.ToString()获取URL - 这样处理程序将无法正常工作且不会发出任何错误。

我是否需要更改任何配置? 你有办法解决我的问题吗?

顺便说一句,如果我尝试获取值,它们都是空的。

我正在使用WSS 3.0和VS 2008,请参阅下面的代码,谢谢!

public override void ItemAdded(SPItemEventProperties properties)
    {
        SPSite site = new SPSite("http://air_sim:1431/");
        SPWeb web = site.RootWeb;
        SPList List = web.Lists["Announcements"];

        base.ItemAdded(properties);

        SPWeb web1 = properties.OpenWeb();

        SPListItem newitem = List.Items.Add();

        newitem["Title"] = "test";
        newitem["Body"] = web1.Url.ToString();

        newitem.Update();

    }

顺便说一句,我在msdn上找到了这段代码。 它不起作用。没有错误......没什么,而且条件是真的。

public override void ItemAdding(SPItemEventProperties properties)
    {
        using(SPWeb oWebsite = new SPSite(properties.SiteId).OpenWeb(properties.RelativeWebUrl))
        { 
            SPListItemCollection collItems = oWebsite.Lists[properties.ListTitle].Items;

            if (collItems.Count >1)
            {
                properties.Cancel = true;
                properties.ErrorMessage = "Adding items to this list is not supported because it already contains " + 
                    collItems.Count.ToString() + " items.";
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

请确保Elements.xml中“receiver”中的“Type”如下:

<Type>ItemAdded</Type>

你的“接收者”节点应该是这样的:

<Receiver>
  <Name>ERItemAdded</Name>
  <Type>ItemAdded</Type>
  <Assembly>$SharePoint.Project.AssemblyFullName$</Assembly>
  <Class>NameSpace.ClassName</Class>
  <SequenceNumber>10000</SequenceNumber>
</Receiver>