Как вы фильтруете и заменяете элементы списка в точках доступа с помощью приемников событий?

У меня есть 2 списка SharePoint в моем семействе сайтов: один список «Комментарии» и один список «Фильтр». Я хотел бы отфильтровать и заменить элементы в списке комментариев, используя элементы из списка фильтров ... например, один элемент в списке комментариев будет добавлен, скажем, "Lorem Ipsum foullanguage", а есть "foulanguage" "в списке" Фильтр ", я хочу, чтобы результат был" Lorem Ipsum * "после добавления элемента списка. Как это сделать с помощью приемников событий в Visual Studio?

Я использую SP13 и VS2012, кстати.

Спасибо!

вот что у меня есть на данный момент:

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

person Kelvin dela Cruz    schedule 13.08.2014    source источник


Ответы (1)


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

                    }



            }

* может быть какая-то ошибка, используйте это как логику ... Я не полностью тестировал

* Используйте "Свойства", не используйте предложение "Использование () {}" в приемнике событий

person vinayak hegde    schedule 13.08.2014
comment
Как указать, где находится [Название столбца]? Я использую два отдельных списка для комментариев и фильтров - person Kelvin dela Cruz; 14.08.2014