我的网站集中有2个SharePoint列表:一个“评论”列表和一个“过滤器”列表。我想使用过滤器列表中的项目过滤和替换评论列表中的项目。例如,评论列表中的一个项目即将添加,例如“Lorem Ipsum foullanguage”,并且有一个“foulanguage” “在”过滤器“列表中输入,我希望在添加列表项后,结果为”Lorem Ipsum * “。如何在Visual Studio中使用事件接收器?
我正在使用SP13和VS2012 btw。
谢谢你!这是我到目前为止所拥有的:
public override void ItemAdded(SPItemEventProperties properties)
{
using (SPSite site = new SPSite(SPContext.Current.Site.Url))
{
string comment = "";
string filter = "";
using (SPWeb oWebSiteRoot = SPContext.Current.Site.RootWeb)
{
SPList commentsList = oWebSiteRoot.Lists["Comments"];
SPListItemCollection commentItems = commentsList.Items;
SPList filterList = oWebSiteRoot.Lists["Filter"];
SPListItemCollection filterItems = filterList.Items;
foreach (SPListItem item in commentItems)
{
comment = item.ToString();
foreach (SPListItem item2 in filterItems)
{
filter = item2.ToString();
if (comment.Contains(filter))
{
string replace = "*******";
replace = item.ToString();
}
}
}
}
}
base.ItemAdded(properties);
}
答案 0 :(得分:0)
SPWeb web = properties.OpenWeb()
DisableEventFiring();
string commentItem = properties.AfterProperties["ColumnName"].ToString();
foreach (SPListItem item in filterItem)
{
comment = item.ToString();
if (item.Contains(commentItem))
{
properties.ListItem["ColumnName"] = "Lorem Ipsum *";
properties.ListItem.Update();
}
}
*可能存在一些错误,将其用作逻辑...我还没有完全测试
*使用"属性"不要使用"使用(){}"事件接收器中的子句