Frage

Bei der Entwicklung für SharePoint Online habe ich programmgesteuert eine Kontaktliste in meiner App erstellt.Ich möchte jetzt einige der Spalten löschen, die der Liste hinzugefügt wurden.Also habe ich den folgenden Code:

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

. . .

clientContext.ExecuteQuery();

Dies löscht die Spalte jedoch nicht.In der Tat, wenn in einem enthalten try {...} catch {...}, Ich bekomme die folgende Ausnahmemeldung:

Der Vorgang ist aufgrund des aktuellen Status des Objekts ungültig.

Betrachten Sie die verschiedenen Eigenschaften auf der Field objekt, ich kann das sehen CanBeDeleted eigentum ist false, daher kann ich nur annehmen, dass dies die Ursache für die obige Meldung ist.Diese Eigenschaft ist aber auch schreibgeschützt, sodass ich das Löschen nicht erzwingen kann.

Meine Frage ist also, wie würde ich diese Spalten löschen?Wenn ich meiner App mit Visual Studio eine Kontaktliste hinzufüge, kann ich diese Spalten über das Tool löschen, daher möchte ich dasselbe im Code tun.

Jede Hilfe wäre sehr dankbar.

War es hilfreich?

Lösung

Sie können ein Feld mit der Eigenschaft CanBeDeleted nicht als false löschen, da dies angibt, ob das Feld gelöscht werden kann oder nicht.

Andere Tipps

vielleicht versuchst du es, indem du festlegst, dass das Feld nicht mehr schreibgeschützt ist

Unter C#:

f.ReadOnlyField = false;
f.Update(true);
s.Lists[ListName].Update();
f.Delete();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top