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。因此,我无法获取要删除的项目的标题。