Wie kann ich in SharePoint 2010 auf der Verwendung von ListData.svc auf der Verwendung von Auswahlfeldern filtern?

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

  •  16-10-2019
  •  | 
  •  

Frage

Ich habe eine Liste, die ich mit ListData.svc abfragen möchte. Ich versuche, die Datensätze innerhalb eines Datumsbereichs und mit einem bestimmten Wert aus dem Feld ausgewählt zu haben. Wenn ich Lists.asmx verwende, kann ich die CAML -Abfrage erstellen, um die von mir benötigten Datensätze zurückzuziehen, aber ich möchte für diese Einrichtung ListData.svc verwenden. Ich kann Spalten filtern, deren Werte in der Liste gespeichert sind, und ich verwende "$ Expand", um die Daten für mein Auswahlfeld zurückzuziehen, aber ich weiß nicht, wie ich die ODATA -URI basierend auf der Auswahl strukturieren soll aufstellen.

Ich versuche eine solche Frage:

http://tssites/departments/appdev/_vti_bin/ListData.svc/TeamCalendar?$expand=Flags&$filter=Flags eq 'PTO'

Der Fehler, den ich zurück bekomme, ist:

Operator 'EQ' unvereinbar mit Operand -Typen 'System.collectionss.generic.Ienumerable`1 [[[Microsoft.SharePoint.Linq.DataServiceEntity, Microsoft.SharePoint.linq, Version = 14.0.0.0, Culture = Neutral, PublicKeyToken = 71E9BCE111E11E9429C]' und 'System.String' an Position 6.

Danke für deine Hilfe.

War es hilfreich?

Lösung

Es wird nicht für Multiselect -Felder unterstützt (dh in der normalen Benutzeroberfläche als Kontrollkästchen dargestellt). Das folgende Zitat ist für 2013, aber die gleichen Regeln gelten für die ListData.svc. Sie können jedoch auf der Client -Seite filtern, je nachdem, wie Sie die Daten und die von Ihnen verwendeten Steuerelemente darstellen.

Abfragen nach Multi-Wert-Suchfeldern und Benutzern

Da Multi-Value-Suchfelder als eine Zeichenfolge mehrerer Werte zurückgegeben werden, gibt es keine Möglichkeit, sie abzufragen (z. B. wird das Äquivalent eines Elements oder eines NotiNcludes-Elements nicht unterstützt).

http://msdn.microsoft.com/en-us/library/fp142385(v=office.15).aspx

Andere Tipps

Auswahlfelder werden mit einem Wert zurückgegeben, ohne dass eine Erweiterung erforderlich ist:

Beispiel: IP_WorkflowStatus = IP_WorkflowStatusValue

Hier ist ein Beispiel für eine Abfrage ohne Erweiterung:

$filter=IP_WorkflowStatusValue eq '2-Validated'

Wenn Sie die Erweiterung verwenden möchten, müssen Sie erweiterte Feldnotationsbeziehungen/-feld verwenden:

$filter=IP_WorkflowStatus/Value eq '2-Validated'&$expand=IP_WorkflowStatus

Rufen Sie den Auswahlfeld in der REST -API ab, indem Sie "Wert" an den Feldnamen anfügen. Für z. B. wenn Ihr Feldname Flags sind, verwenden Sie den Begriff Flagswert in der Filterzeichenfolge. Dies funktioniert, wenn das Auswahlfeld kein Multi -Select -Feld ist.

Ihre URL sollte wie sein

http: //tssites/departments/appdev/_vti_bin/listdata.svc/teamcalendar$ expt = flags & $ filter = flagsValue eq 'pto'

Es gibt noch eine weitere Arbeit für dieses Problem. Erstellen Sie eine berechnete Spalte und fügen Sie das Auswahlfeld als Formel dafür hinzu. Verwenden Sie nun die berechnete Spalte für die Filterung.

Für Multiselect Choice Fields:

Befolgen Sie die folgenden Schritte.

  1. Fügen Sie eine neue Textspalte mit Namen FLAGSCSV hinzu
  2. Bearbeiten Sie die Bearbeitungsform des Listenelements und fügen Sie ihm ein Inhaltswebwerk hinzu. Haken Sie eine HTML -Seite an den Content -Webpart. (Lassen Sie den Namen der HTML -Seite inhaltlich sein.
  3. Bearbeiten Sie den Content.html und verwenden Sie JQuery, um die Optionen von Flags zu ändern. Generieren Sie Kommas -Trennwerte der ausgewählten Flag -Optionen mehrerer Elemente und setzen Sie es auf das Textfeld von Flagscsv.
  4. Speichern und schließen Sie die HTML -Seite. Jedes Mal, wenn Sie das Listenelement bearbeiten, wird Flagscsv auch aktualisiert.
  5. Sie können das Feld Flagscsv für Ihre Filterung später in Ihrem Restanruf verwenden.

Einfach .. Wenn Sie ein Auswahlfeld mit Namen "Farbe" filtern möchten, geben Sie einfach wie folgt:

$ filter = colorValue eq 'Blue' & $ expt = color

Fügen Sie einfach den Wert mit dem Spaltennamen an. hier ColorValue

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top