적화를 위해 다음은 코 업데이트 방법에서 호출할 경우 이벤트가 수신기 ItemUpdated

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/97683

문제

가락에서는 심각한 문제에 대 SPListItem 업데이트 방법입니다.하는 경우 이벤트를 수신 차단 SPListItem 변경 또는 업데이트 SPItemEventReceiver ItemUpdated method, 이벤트가 재귀적으로 호출됩니다.

출처:

  public override void ItemUpdated(SPItemEventProperties properties)
   {
    base.ItemUpdated(properties);

    SPList list = properties.List;

    SPListItem item = properties.ListItem;

    if ("Oui" == properties.ListItem["Envoyé vers le Directeur"].ToString())
    {
        SPListItem copyItem = item;

        MoveItemsToFolder(properties, list, "Dossiers envoyés Rédaction", copyItem);

        item["Service"] = "direction";
        item.Update();

        string[] cols = { "Envoyé vers le Directeur", "Archivé" };
        HideColumns(list, cols);

    }
    else if ("Oui" == properties.ListItem["Validé par le Directeur"].ToString())
    {

        SPListItem copyItem = item;

        MoveItemsToFolder(properties, list, "Direction", copyItem);

        item["Service"] = "bureauOrdre";
        item.Update();

        string[] cols = { "Validé par le Directeur", "Envoyé vers le Directeur" };
        HideColumns(list, cols);
    }
    else if ("Oui" == properties.ListItem["Archivé"].ToString())
    {

        SPListItem copyItem = item;

        MoveItemsToFolder(properties, list, "Archives", copyItem);

        item["Service"] = "Archive";
        item.Update();

        string[] cols = { "Validé par le Directeur", "Envoyé vers le Directeur" };
        HideColumns(list, cols);
    }
    else
    {

        item["Service"] = "redaction";
        item.Update();

    }

}
도움이 되었습니까?

해결책

이 솔루션은 사용하기 SPItemEventReceiver.EnableEventFiring MSDN

당신이 할 수 있는

var eventRecTemp = new SPItemEventReceiver();
eventRecTemp.EnableEventFiring = false;
//update
eventRecTemp.EnableEventFiring = true;

블로그에 대해 이야기,그것을 설정 범위 사용 IDisposable.

내가 사용하는 범위에서 방법 ItemUpdated 무거운 프로젝트 및 그것은 잘했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top