SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

SP2010 - Dropdownlist von SPLookupField manipulieren / Session in CAML-Query einbeziehen?

bewertet von 0 Usern
Beantwortet Dieser Beitrag hat 1 Geprüfte Antwort | 5 Antworten | 2 Followers

Top-50-Beitragsschreiber
269 Beiträge
MStel erstellt in 7 Mai 2018 15:09

Hallo,
ich möchte die CAML-Query, die eine Dropdownlist beim erstellen eines SPLookupFields füllt manipulieren/einschränken.

Hier etwas konkreter in form eines Beispiels:

Ich habe jeweils eine Gruppe mit Arbeitern und eine Gruppe mit Chefs für Köln und Frankfurt.
Alle Arbeiter werden in einer Liste "Personal" eingetragen und bekommen einen Standort zugewiesen, entweder Köln oder Frankfurt.

Die Chefs müssen anschließend ihrer Firma in einer weiteren Liste Personal zuweisen, dafür habe ich also in der entsprechenden Liste eine Lookup Spalte auf die Liste Personal gemacht und deren Name gemacht.
Soweit so gut, das Problem hierbei ist, dass die Chefs z.B. in Frankfurt in der Dropdownlist nun auch Kölner Arbeiter angezeigt bekommen und zuweisen können.

Soweit ich weiß, steckt dahinter eine CAML Query, die die entsprechenden Werte selektiert, im standardfall alle.

Eine Listenansicht habe ich sowohl über das UI als auch über den sharePoint Designer schon einmal angepasst und bin mit der Syntax vertraut, jedoch ist es mir neu, dass man in diese Abfragen z.B. die Session einlesen kann um u.a. an die Gruppen zu gelangen, in der die aktuell angemeldete Person angemeldet ist.

Daher meine Frage:
Kriege ich es hin, mit CAML eine solch komplexe Abfrage generisch für mein Beispiel zu gestalten?
Wenn nicht, wäre ein denkbarer Lösungsansatz mit einem Content Editor und Javascript dahinter die Daten abzufragen und die Elemente aus der Dropdownlist zu löschen?

Vielen dank im voraus.

Beantwortet Geprüfte Antwort

Top-10-Beitragsschreiber
18.604 Beiträge

Du kannst das alles komplett vergessen. In 2010 gibt es nur eine Möglichkeit: nach dem Laden der Seite per JavaSCript alle Elemente aus dem DropDown entfernen, die gewünschten Nachladen und einfügen.

Aber Achtung: in 2010 werden die DropDowns komplett unterschiedlich gerendert und müssen entsprechend unterschiedlich behandelt werden, je nachdem, ob mehr oder weniger als 20 (oder 25?) Elemente enthalten sind.

Viele Grüße
Andi
af @ evocom de
Blog

Alle Antworten

Top-10-Beitragsschreiber
18.604 Beiträge

Du kannst das alles komplett vergessen. In 2010 gibt es nur eine Möglichkeit: nach dem Laden der Seite per JavaSCript alle Elemente aus dem DropDown entfernen, die gewünschten Nachladen und einfügen.

Aber Achtung: in 2010 werden die DropDowns komplett unterschiedlich gerendert und müssen entsprechend unterschiedlich behandelt werden, je nachdem, ob mehr oder weniger als 20 (oder 25?) Elemente enthalten sind.

Viele Grüße
Andi
af @ evocom de
Blog
Top-25-Beitragsschreiber
396 Beiträge

Warum wollt Ihr diese Informationen denn in einer SharePoint-Liste haben?

Eine andere Möglichkeit wäre diese INFOs im AD einzutragen (Manager und/oder Standord) und diese mit AD-Import/Synchronisation in die SharePoint-Profile zu bringen und weiterzuverarbeiten?

Top-50-Beitragsschreiber
269 Beiträge

Es sind mehrere hunderte.. autsch.

nagut das wird wohl etwas aufwendiger

 

Was mir noch eingefallen ist: Wäre es nicht eventuell möglich, mit Listviews zu arbeiten?
eine View mit Personen Köln und Personen Frankfurt und das Target der DDL auf die jeweilige View anstatt ganze Liste umzubiegen?

Top-50-Beitragsschreiber
269 Beiträge
Das Beispiel war ja nur fiktiv. Der bisherige Stand ist natürlich in der Praxis noch wesentlich umfangreicher .. auf jeden Fall ist Anforderung an mich, das ganze sharepoint-seitig zu lösen und das macht eigentlich auch sinn, da die Nutzer das System am ende selbst verwalten sollen und in den Listen und Personen zusätzliche Informationen stehen, die im AD nichts zu suchen hätten.
Top-10-Beitragsschreiber
18.604 Beiträge

Wie oben geschrieben hast Du keine andere Chance als das mit JS zu lösen. Oder eben einen eigenen Spaltentyp zu entwickeln oder eine der im Web verfügbaren zu verwenden (Suche nach filtered lookup), aber davon würde ich abraten. Das macht bei einer Migration nur Probleme.

Viele Grüße
Andi
af @ evocom de
Blog
Seite 1 von 1 (6 Elemente) | RSS