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

时间:2011-07-11 11:16:30

标签: sharepoint-2010

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

 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";
                            }
                        }
                    }
                }
            }
        }

问题是项目被删除但更新没有发生。 任何帮助都非常适合。 感谢。

3 个答案:

答案 0 :(得分:1)

您必须更新项目:

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

答案 1 :(得分:0)

我总是在“ing”事件中进行验证并在“ed”事件中进行更新。请尝试使用ItemDeleted。

答案 2 :(得分:0)

我也是sharepoint的新手,不明白是什么问题。

执行工作后调用此方法,可能有效 base.ItemDeleting(属性);