Удалить столбец из списка с помощью клиентской объектной модели

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

Вопрос

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

var lastName = list.Fields.GetByInternalNameOrTitle("Last Name");
if (lastName != null) {
    lastName.DeleteObject();
}

. . .

clientContext.ExecuteQuery();

Но это не удаляет столбец.Фактически, когда он содержится в try {...} catch {...}, я получаю следующее сообщение об исключении:

Операция недопустима из-за текущего состояния объекта.

Рассматривая различные объекты недвижимости на Field объект, я вижу CanBeDeleted собственность false, поэтому я могу только предположить, что это является причиной приведенного выше сообщения.Но это свойство также доступно только для чтения, поэтому я не могу принудительно удалить его.

Итак, мой вопрос: как мне удалить эти столбцы?Когда я добавляю список контактов в свое приложение с помощью Visual Studio, я могу удалить эти столбцы с помощью инструментов, поэтому я хочу сделать то же самое в коде.

Любая помощь будет принята с благодарностью.

Это было полезно?

Решение

Вы не можете удалить поле со свойством CanBeDeleted, имеющим значение false, поскольку оно указывает, можно ли удалить поле или нет.

Другие советы

возможно, вы попробуете сделать это, установив поле, которое больше не будет доступно только для чтения.

В С#:

f.ReadOnlyField = false;
f.Update(true);
s.Lists[ListName].Update();
f.Delete();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top