Как удалить версии без имени столбца в списке sharepoint - PullRequest
0 голосов
/ 22 августа 2011

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

Version History На изображении вы можете увидеть пустые версии ... Мне нужно удалить теверсии

1 Ответ

3 голосов
/ 22 августа 2011

Приведенный ниже код удаляет версии из элемента списка. Вы можете использовать его повторно и добавить условие проверки имени как пустого.

///

    /// Removes unneeded versions from a sharepoint list item

    /// </summary>

    /// <param name="item">The SPListItem that needs some versions removed</param>

    /// <param name="minVersions">The minimum number of versions to keep</param>

    /// <param name="savedVersions">A collection of important version labels (or null)</param>

    /// <returns>The number of versions deleted</returns>

    internal static int RemoveVersions(SPListItem item, int minVersions, ICollection<string> savedVersions)

    {

        //  Homework for the reader: validate the input arguments.

        //  if item is null, throw an ArgumentNullException

        //  if minVersions < 0 throw an ArgumentOutOfRangeException



        int deletedCount = 0;

        int i = minVersions;    // start looking for old versions after skipping minVersions



        while (i < item.Versions.Count)

        {

            SPListItemVersion itemVersion = item.Versions[i];

            string versionLabel = itemVersion.VersionLabel;



            if (!itemVersion.IsCurrentVersion &&    // Not "current" according to SharePoint (e.g. last-published major version, moderated version)

                (savedVersions == null || !savedVersions.Contains(versionLabel)))  // not one of our "saved" versions

            {

                itemVersion.Delete();

                ++deletedCount;

            }

            else

            {

                ++i;

            }

        }



        return deletedCount;

    }
...