Sharepoint 2010 Sharepoint 2010事件接收器项目删除和更新

Sharepoint 2010 Sharepoint 2010事件接收器项目删除和更新,sharepoint-2010,Sharepoint 2010,删除项目时,我想更新另一个列表。 下面是我的代码 public override void ItemDeleting(SPItemEventProperties properties) { base.ItemDeleting(properties); string listName = properties.ListTitle; if (listName == "Training Instances")

删除项目时,我想更新另一个列表。 下面是我的代码

 public override void ItemDeleting(SPItemEventProperties properties)
        {
            base.ItemDeleting(properties);

            string listName = properties.ListTitle;

            if (listName == "Training Instances")
            {
                using (SPSite site = new SPSite(properties.WebUrl))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        string title = properties.ListItem["Title"].ToString();

                        SPList trainingSubscriptionsList = web.Lists.TryGetList("Training Subscriptions");

                        SPQuery query = new SPQuery();
                        query.Query = "<Where><Eq><FieldRef Name='Training' /><Value Type='Text'>" + title + "</Value></Eq></Where>";

                        SPListItemCollection listItemCollection = trainingSubscriptionsList.GetItems(query);

                        foreach (SPItem ts in listItemCollection)
                        {
                            if (ts["Status"].ToString() == "Available")
                            {
                                ts["Status"] = "Pending";
                            }
                        }
                    }
                }
            }
        }
公共覆盖无效项删除(SPItemEventProperties属性)
{
基本项删除(属性);
字符串listName=properties.ListTitle;
如果(listName==“培训实例”)
{
使用(SPSite site=newspsite(properties.WebUrl))
{
使用(SPWeb=site.OpenWeb())
{
字符串title=properties.ListItem[“title”].ToString();
SPList trainingSubscriptionsList=web.Lists.TryGetList(“培训订阅”);
SPQuery query=新建SPQuery();
query.query=”“+title+”;
SPListItemCollection listItemCollection=trainingSubscriptionsList.GetItems(查询);
foreach(listItemCollection中的SPItem ts)
{
如果(ts[“状态”].ToString()=“可用”)
{
ts[“状态”]=“待定”;
}
}
}
}
}
}
问题是项目已被删除,但更新未发生。 任何帮助都是非常诱人的。
谢谢。

在“ing”活动中进行验证,在“ed”活动中进行更新,我一直都很幸运。尝试改用ItemDeleted。

在“ing”事件中进行验证,在“ed”事件中进行更新,我总是运气最好。尝试改用ItemDeleted。

我也是sharepoint新手,不明白问题出在哪里

在执行您的工作后调用此方法,可能是有效的
基本项删除(属性)

我也是sharepoint新手,不明白问题出在哪里

在执行您的工作后调用此方法,可能是有效的
基本项删除(属性)

您必须更新项目:

...
    foreach (SPItem ts in listItemCollection)
    {
      if (ts["Status"].ToString() == "Available")
      {
        ts["Status"] = "Pending";
        ts.Update(); // or SystemUpdate()
      }
    }

您必须更新项目:

...
    foreach (SPItem ts in listItemCollection)
    {
      if (ts["Status"].ToString() == "Available")
      {
        ts["Status"] = "Pending";
        ts.Update(); // or SystemUpdate()
      }
    }

你好,Rob,我尝试过使用ItemDeleted事件,但是在这个事件中,所有对象(ListItem)和属性都为null。因此,我无法获取要删除的项目的标题。您好,Rob,我已尝试使用ItemDeleted事件,但在该事件中,所有对象(ListItem)和属性均为null。因此,我无法获取要删除的项目的标题。