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.




Personensuche

Unbeantwortet Dieser Beitrag hat 5 Antworten

Ohne Rang
29 Beiträge
Ronnyengelhardt erstellt 26 Nov. 2014 14:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich bin gerade dabei ein Visual WebPart (C#) zu entwickeln. (blutiger Anfänger :-))
Nun würde ich gerne eine Personensuche implementieren.
Mit dem "Listenelementhinzufügestandardformular" einer SharePoint Liste  ist es ja möglich, innerhalb des Active Directory zu suchen wenn als Spaltentyp Person/Gruppe angegeben ist.

Hat jemand vielleicht ein Codebeispiel für mich parat.
Gehe ich recht in der Annahme das hier auch mit AJAX gearbeitet werden muss, da ja beim Standardformular ein extra Fenster aufpoppt?

Grüße

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Nov. 2014 14:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Verwende einfach das PeopleEditor-Control von SharePoint und Du hast die gesamte Funktionalität: http://blogs.msdn.com/b/ekraus/archive/2008/02/06/use-peopleeditor-people-picker-in-sharepoint-custom-app-dev.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
29 Beiträge
Ronnyengelhardt Als Antwort am 26 Nov. 2014 14:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke :-)

Ohne Rang
29 Beiträge
Ronnyengelhardt Als Antwort am 2 Dez. 2014 10:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das mit dem People Picker hat soweit funktioniert, nun noch die Frage wie man diese Daten korrekt in einer Liste ablegt.

Hier mein Code:

//Erzeugen Objekt für Personenauswahl & Bindung an ASP Element

            PeopleEditor people = new PeopleEditor();

            people.ID = "userPicker";

 

//Holen Daten People Picker

            string[] peopledata = new String[2];

            peopledata[0] = String.Empty;

            peopledata[1] = String.Empty;

 

            for (int i = 0; i < userPicker.ResolvedEntities.Count; i++)

            {

                PickerEntity objEntity = (PickerEntity)userPicker.ResolvedEntities[i];

                peopledata[0] += objEntity.DisplayText + ";";

                peopledata[1] += objEntity.EntityData["Email"] + ";";

            }

            if (peopledata[0] != String.Empty)

            {

                peopledata[0] = peopledata[0].Substring(0, peopledata[0].Length - 1);

                peopledata[1] = peopledata[1].Substring(0, peopledata[1].Length - 1);

            }

Danach habe ich ja Anzeigenamen und E-Mail Adresse in meinem Feld peopledata[].

Zum Schreiben in die Liste habe ich bereits andere Felder ausprobiert, diese funktionieren einwandfrei, soll heißen Referenz zur Liste usw. funktioniert.

Schreiben in die Liste mit folgendem Code (geht aber nicht, da Fehlermeldung)

myListItem["Organisator"] = peopledata[0];

myListItem.Update();

Grüße Ronny

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Dez. 2014 14:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

PickerEntity.Description liefert Dir den Login des Users. Über SPWeb.EnsureUser(<Login>) bekommst Du den SPUser. Personenfelder in SharePoint erwarten (und liefern) als Wert ein SPFieldUserValue, das Du so erzeugen kannst:

SPFieldUserValue val = new SPFieldUserValue(<web>, user.ID, string.Empty);

Als Web kannst Du vermutlich SPContext.Current.Web verwenden, es sei denn Du gmöchtest auf andere Websites zugreifen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
29 Beiträge
Ronnyengelhardt Als Antwort am 2 Dez. 2014 18:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hat super funktioniert. Vielen Dank!!!!