В sharepoint отключение отдельного элемента списка от обновления - PullRequest
2 голосов
/ 14 ноября 2008

Что мне интересно, как это сделать, когда кто-то редактирует элемент списка, и он проходит через мой код события, который запускается при внесении изменения и ударе по сохранению. Это все еще обрабатывает этот запрос. Поэтому мне было интересно, если в этом случае я могу отключить редактирование отдельного элемента кем-то еще, пока он не выполнит то, что делает.

Ответы [ 2 ]

2 голосов
/ 16 ноября 2008

Не уверен, что я точно понимаю, чего вы хотите.

Попробуйте добавить поле, скрытое, если хотите, в список или тип контента для использования в качестве флага. Когда вы вводите свой код события, убедитесь, что вы сначала проверили флаг, и если он не установлен, установите его и сделайте свое дело. После того, как вы сделали свои вещи, снимите флажок.

Вот некоторый код для иллюстрации. Обратите внимание, что я использовал столбец с именем «обновление». Вы также можете использовать свойства SPListItem, если не хотите добавлять столбец.

О, и не забудьте вызвать DisableEventFiring перед SPListItem.Update и затем EnableEventFiring () впоследствии. Чтобы получить это, у вас на руках будет очень неприятный бесконечный цикл.

.b

    public override void ItemAdding(SPItemEventProperties properties)
    {
        if (properties.ListItem["updating"].ToString() == "updating")
        {
            properties.Cancel = true;
            properties.ErrorMessage = "Item is currently updating, please try again later";
        }
        else
        {
            properties.ListItem["updating"] = "updating";
            this.DisableEventFiring();
            properties.ListItem.Update();
            this.EnableEventFiring();

            // do your stuff

            properties.ListItem["updating"] = "";
            this.DisableEventFiring();
            properties.ListItem.Update();
            this.EnableEventFiring();
        }
    }
1 голос
/ 17 ноября 2008

Я не сомневаюсь, что решение Bjørns будет работать, но вы должны быть очень осторожны при его внедрении. Pls. помните, что в вашем методе обновления должен быть параметр "finally", который сбрасывает флаг, независимо от того, какое исключение выдается, в противном случае ваш список будет заблокирован навсегда: - (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...