Есть ли способ программно изменить дату создания и изменения в SPList? - PullRequest
1 голос
/ 20 декабря 2011

Я перенес некоторые обсуждения на своем сайте SharePoint - SPsite - из файла Excel. В моих тестах SharePoint, очевидно, устанавливает дату создания и изменения в время загрузки. Я знаю, как изменить эти значения в SPListItem, но моя проблема заключается в установке этих значений в SPList.
Есть ли способ изменить эти атрибуты на значения, полученные из файла Excel?

С уважением, Вероника

1 Ответ

0 голосов
/ 23 марта 2012

Для этого вам нужно работать с SPList.Folders. Вот магические функции:

private static void UpdateDatesOfAllItemsInTheList(SPList list, DateTime date)
{
    // For each message (NOT thread) in the list.
    foreach (SPListItem item in list.Items)
    {
        ChangeDate(item, date);
    }

    // For each thread.
    foreach (SPListItem folder in list.Folders)
    {
        ChangeDate(folder, date);
    }
}

private static void ChangeDate(SPListItem item, DateTime date)
{
    // Open fields for edits.
    item.ParentList.Fields[SPBuiltInFieldId.Modified].ReadOnlyField = false;
    item.ParentList.Fields[SPBuiltInFieldId.Created].ReadOnlyField = false;
    item.ParentList.Fields[SPBuiltInFieldId.DiscussionLastUpdated].ReadOnlyField = false;

    // Edit fields.
    item[SPBuiltInFieldId.Created] = date;
    item[SPBuiltInFieldId.Modified] = date;
    item[SPBuiltInFieldId.DiscussionLastUpdated] = date;

    // Save changes.
    item.UpdateOverwriteVersion();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...