SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




People Editor Validation

Geprüfte Antwort Dieser Beitrag hat 4 Antworten

Ohne Rang
16 Beiträge
Illuminatus 42 erstellt 19 Okt. 2012 13:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Leute,

wie der Titel schon sagt, habe ich ein Problem mit der Validation der Einträge meines People Editors. 

Ich benutze Sharepoint 2010 und habe den People Editor meinem Webpart hinzugefügt. Ich habe an ihm keine weiteren Einstellungen vorgenommen. 

An folgendem Beispiel will ich mal versuchen zu verdeutlichen, was nicht funktioniert:

Wenn ich in das Textfeld beispielsweise "smueller" eintrage und den Button zum validieren drücke, sollte er mir das in "Stefan Müller ;" auflösen. Tut er aber nicht. Alles was an dieser Stelle passiert ist, dass er mir ein Semikolon hinter "smueller" setzt. Ich habe schon im Debugging gesehen, dass der Wert auch nur in den Entities, nicht aber in den ResolvedEntites steht, wo ich ihn aber brauche, um ihn in ein Person/Gruppe Feld einer Liste einzutragen.

Mit dem Benutzer, den ich hinzufügen will besteht kein Problem, denn wenn ich auf den Button für das Adressbuch unter dem People Editor klicke und dort nach dem Namen suche, findet er ihn und trägt ihn richtig ein. Er ist dann auch in den ResolvedEntities eingetragen und wandert wunderbar in das Feld der Liste.

Nun will ich aber nicht jedes Mal die Namen über das Adressbuch hinzufügen müssen.

Kurios ist auch, dass der People Editor nur in diesem Webpart nicht funktioniert. Ich habe allerdings bei der Erstellung des Webparts nichts anders gemacht, als sonst.

Hat hier vielleicht jemand eine Idee, wo hier mein Fehler liegt?

 

Gruß,

Illu

Alle Antworten

Ohne Rang
16 Beiträge
Illuminatus 42 Als Antwort am 23 Okt. 2012 08:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok, ich bin selbst drauf gekommen :)

Wenn ich das Panel, in welchem der Picker liegt, programmatisch im Page_Load auf "Invisible" setze, dann funktioniert das Validieren nicht, warum auch immer. Wenn ich das Panel allerdings schon in seinen Eigenschaften auf "Invisible" setze, funktioniert es einwandfrei.

Außerdem ist mir aufgefallen, dass man in den Picker programmatisch nichts eintragen kann, wenn er nicht sichtbar ist. Und das betrifft nicht nur den Picker selbst, sondern passiert auch, wenn das Panel in dem der Picker liegt unsichtbar ist.

 

Gruß,

Illu

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 23 Okt. 2012 09:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist aber logisch. Jedes ASP.NET-Control, dessen Visible-Eigenschaft auf false gesetzt wurde, wird überhaupt nicht gerendert. D.h. es erscheint nicht im HTML-Quellcode der Seite. Beim PeopleEditor läuft dort aber JavaScript, das dann auch nicht ausgeführt wird.

Warum verwendest Du den PeopleEditor, wenn Du ihn gar nicht anzeigen läßt? Vielleicht gäbe es da bessere Methoden?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
16 Beiträge
Illuminatus 42 Als Antwort am 23 Okt. 2012 17:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Erstmal ging es mir nur darum, dass das Validieren von Einträgen nicht funktionierte, wenn ich das Panel in dem der Editor lag, programmatisch im Page_Load auf invisible gesetzt habe. Habe ich das Panel dann sichtbar gemacht und damit auch den Editor, funktionierte der Button zum validieren nicht. Erst nachdem ich die Visible-Eigenschaft standardmäßig auf false setzte, ging das Validieren nach der Sichtbarmachung des Panels richtig.

Ich verwende den Editor unsichtbar, weil ich das "Person oder Gruppe" Feld einer Liste bis jetzt immer über die Einträge eines Editors gefüllt habe. In meinem konkreten Fall nun, trage ich die Personen, die eingetragen werden sollen, nicht direkt in den Editor, sondern wähle sie über eine Namesliste mit Checkboxen aus. Die angehakten sollen dann nach einem Buttonklick in die Liste. Dafür schreibe ich sie in den Editor. Ich bin mir sicher, dass es da eine weniger aufwendige Methode gäbe, aber wenn ich den Editor am Anfang des Events sichtbar mache und am Ende wieder unsichtbar, funktioniert alles, ohne dass ich meinen Code ändern muss. Außerdem läuft das Event so schnell ab, dass man den Editor in der sichtbaren Phase nicht sieht :P

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 24 Okt. 2012 08:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Schaue Dir mal SPWeb.EnsureUser() an. Das sollte eigentlich die gewünschte Funktion liefern. In den SPListItem wird das Ganze als SPFieldUserValue gespeichert - oder als SPFieldUserValueCollection bei Feldern mit Mehrfachauswahl.

Viele Grüße
Andi
af @ evocom de
Blog