SharePoint itemDeleting evert не работает - PullRequest
0 голосов
/ 27 мая 2010

У меня есть сайт в SharePoint, и я хочу удалить его из списка. Итак, я создаю

 public class ListItemEventReceiver : SPItemEventReceiver
 {
 public override void ItemDeleting(SPItemEventProperties properties)
        {
            if (properties.ListTitle.Equals("Projects List"))
            {
               Projects pr = new Projects();
               string projectName = properties.ListItem["Project Name"].ToString();
               pr.DeleteProject(projectName);
            }
         }
}

Где класс Projects имеет метод DeleteProject, который удаляет элемент. Но он ничего не делает :( Я упоминаю, что все в порядке в Feature.xml

Где я не прав?

Редактировать (из «ответа»):

  1. Да, я пробовал это:

    properties.ErrorMessage = "projectName :" + projectName;
    properties.Cancel = true; 
    

    в операторе if и событии, которое запускается, и отображает имя проекта в основном.

  2. Я администратор фермы и администратор сайта с полным контролем над этим сайтом.

  3. Метод DeleteProject - правильный, потому что я пробовал его в каком-то другом приложении (c #), и он отлично работает.

Ответы [ 2 ]

0 голосов
/ 29 мая 2010

Если событие срабатывает и единственный метод pr.DeleteProject (projectName); не работает должным образом, тогда трудно догадаться, что не так. Если это не конфиденциально, пожалуйста, опубликуйте свой код, и тогда я буду в лучшем положении, чтобы определить, что не так.

Кстати, вы вызываете метод .Update () в списке?

Пожалуйста, проверьте эту ссылку http://msdn.microsoft.com/en-us/library/ms431920.aspx

Еще одна вещь, о которой следует позаботиться, это события Item ed и Item ing. Свойства «До» или «После» лучше использовать в зависимости от обстоятельств события Item *.

С уважением,

Azher Iqbal

0 голосов
/ 27 мая 2010

Несколько вещей для проверки:

  • Ваш приемник элементов списка подключен к списку, чтобы он срабатывал?
  • Имеет ли пользователь, который вызывает срабатывание триггера, право удалять элементы?
  • Есть ли какая-либо программная ошибка в DeleteProject?

Попробуйте добавить данные в журнал, чтобы увидеть, как далеко он работает.

Редактировать

Может ли проблема быть здесь:

           string projectName = properties.ListItem["Project Name"].ToString(); 

Элемент списка называется "Имя проекта" с пробелом в имени?

Редактировать 2

Исходя из ваших комментариев, комбинация аутентификации и строки подключения означает, что именно контекст безопасности вошедшего в систему пользователя используется в базе данных. Проверьте права своего пользователя.

...