删除项目时,我想更新另一个列表。 以下是我的代码。
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";
}
}
}
}
}
}
问题是项目被删除但更新没有发生。 任何帮助都非常适合。 感谢。
答案 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(属性);