Frage

Ich habe in SP eine Liste „Bestellungen“, in der ich einige Daten habe.Die Listendefinition und die Instanz wurden zuvor in Visual Studio erstellt und dann erfolgreich bereitgestellt.

Heute habe ich VS erneut geöffnet und ein neues Auswahlfeld „OrderType“ hinzugefügt schema.xml Datei.Außerdem habe ich dieses Feld zu allen Ansichten hinzugefügt.Jetzt kann ich es auf Listenansichtsseiten sehen. Ich kann dieses Feld erfolgreich über CodeBehind festlegen, wenn ich ein neues Element hinzufüge:

SPListItem item = SPContext.Current.List.AddItem();
item["Title"] = "MyNewTitle";
item["OrderType"] = "Choice1";
item.Update();

Wenn ich jedoch versuche, über Powershell auf dieses Feld zuzugreifen, erhalte ich die Fehlermeldung:

$web = Get-SPWeb http://myweb
$list = $web.lists["Orders"]
$items = $list.items
$item = $items[0] # Item with filled fields
$item["OrderType"] # Returns nothing
$item["OrderType"] = "Choice1" # Returns error
$item.Update() 

Fehler:

Unable to index into an object of type Microsoft.SharePoint.SPListItem.
At line:1 char:7
+ $item[ <<<< "OrderType"] = "Choice1"
    + CategoryInfo          : InvalidOperation: (OrderType:String) [], RuntimeException
    + FullyQualifiedErrorId : CannotIndex

Tatsächlich kann ich das Feld nicht einmal im Internet finden:

$list.Fields.GetField("OrderType")

Fehler:

Exception calling "GetField" with "1" argument(s): "Column 'OrderType' does not exist. It may have been deleted by another user."
At line:1 char:22
+ $list.Fields.GetField <<<< ("OrderType")
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

Ich habe volle Zugriffsberechtigungen für den Artikel.Ich kann dieses Feld und seine Daten immer noch auf meinen Listenansichtsseiten sehen.

Wo irre ich mich?

War es hilfreich?

Lösung 2

Ich habe die Lösung gefunden, einfach mein „problematisches“ Feld über „Liste“ -> „Site-Einstellungen“ -> „OrderType“ geöffnet und dann auf „OK“ geklickt (ich habe keine Änderungen vorgenommen).Jetzt kann ich über Powershell darauf zugreifen.Dank an dieser Beitrag (Es geht um Site-Spalten, aber die Lösung ist ähnlich)!

Andere Tipps

Hier finden Sie PowerShell-Beispiele zum Abrufen/Festlegen von Auswahlfeldern:http://social.technet.microsoft.com/wiki/contents/articles/20831.sharepoint-a-complete-guide-to-getting-and-setting-fields-using-powershell.aspx#Set_and_Get_a_Choice_Field

Sie sollten Ihren Feldwert beispielsweise wie folgt festlegen können:

$item["OrderType"] = $list.Fields["OrderType"].GetFieldValue("Choice1");            
$item.Update();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top