Question

En développement pour SharePoint Online, j'ai créé une liste de contacts par programme dans mon application.Je souhaite maintenant supprimer certaines des colonnes qui ont été ajoutées à la liste.J'ai donc le code suivant :

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

. . .

clientContext.ExecuteQuery();

Mais cela ne supprime pas la colonne.En fait, lorsqu'il est contenu dans un try {...} catch {...}, j'obtiens le message d'exception suivant :

L'opération n'est pas valide en raison de l'état actuel de l'objet.

En regardant les différentes propriétés sur le Field objet, je peux voir le CanBeDeleted la propriété est false, je ne peux donc que supposer que c'est la cause du message ci-dessus.Mais cette propriété est également en lecture seule, je ne peux donc pas forcer sa suppression.

Ma question est donc la suivante : comment puis-je supprimer ces colonnes ?Lorsque j'ajoute une liste de contacts à mon application à l'aide de Visual Studio, je peux supprimer ces colonnes via les outils, je souhaite donc faire de même dans le code.

Toute aide serait grandement appréciée.

Était-ce utile?

La solution

Vous ne pouvez pas supprimer un champ avec la propriété CanBeDeleted comme fausse car elle indique si le champ peut être supprimé ou non.

Autres conseils

peut-être que vous l'essayez en définissant le champ pour qu'il ne soit plus en lecture seule

En C# :

f.ReadOnlyField = false;
f.Update(true);
s.Lists[ListName].Update();
f.Delete();
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top