如何使用事件接收器过滤和替换sharepoint中的列表项?

时间:2014-08-13 09:11:09

标签: list visual-studio-2012 sharepoint event-receiver

我的网站集中有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);
    }

1 个答案:

答案 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();

                    }



            }

*可能存在一些错误,将其用作逻辑...我还没有完全测试

*使用"属性"不要使用"使用(){}"事件接收器中的子句