Gewusst wie: Auffüllen von PeoplePicker-Kontrolle?
Ich versuche, Javascript zu verwenden, füllen Sie einen PeoplePicker-Steuerung in Sharepoint 2013:
name="Engineer"
var ppDiv=$("[id$='ClientPeoplePicker'][title='"+name+"']");
console.log(ppDiv.html());
var ppEditor=ppDiv.find("[title='"+name+"']");
var spPP=SPClientPeoplePicker.SpClientPeoplePickerDict[ppDiv[0].id];
ppEditor.val("Abc, Xyz");
spPP.AddUnresolvedUserFromEditor(true);
Zwei Probleme: ppDiv
ist noch nicht definiert nach der Zuweisungsanweisung, und SPClientPeoplePicker
ist nicht definiert; laut dieser Artikel, es ist definiert durch clientpeoplepicker.js
, das ist ein Skript, das geladen werden soll, auf jeder Seite, die eine Personenauswahl.
EDIT:
Änderte ich den code, um:
name="Engineer"
var ppDiv=$("div[title='"+name+"']");
console.log(ppDiv.html());
var ppEditor=ppDiv.find("[title='"+name+"']");
var spPPD=SPClientPeoplePicker.SpClientPeoplePickerDict;
console.log(spPPD[0]);
var spPP=spPPD[ppDiv[0].id];
ppEditor.val("Abc, Xyz");
spPP.AddUnresolvedUserFromEditor(true);
Nun ppDiv definiert ist (wie gezeigt, durch seine HTML-erfolgreich erscheinen in der Konsole), aber es zu Abstürzen auf der Linie var spPPD=SPClientPeoplePicker.SpClientPeoplePickerDict;
mit diesem Fehler:
Uncaught ReferenceError: SPClientPeoplePicker is not defined
Könnte es sein, die Verkettung innerhalb der $ () - Aufruf? Versuchen wrapping "[id$='ClientPeoplePicker'][Titel='"+name+"']" in Klammern? Es ist schwer zu sagen ohne mehr code.
meinst du, dass dies nicht genug code, um das Problem zu reproduzieren?
Ich meine, es ist schwer zu sagen, was das problem ist ohne mehr code, obwohl ich sicher bin, würde ich eine Fehlermeldung erhalten, kopieren und einfügen von text zur Verfügung gestellt.
richtig, Sie würden zu ändern, die
Gut,
meinst du, dass dies nicht genug code, um das Problem zu reproduzieren?
Ich meine, es ist schwer zu sagen, was das problem ist ohne mehr code, obwohl ich sicher bin, würde ich eine Fehlermeldung erhalten, kopieren und einfügen von text zur Verfügung gestellt.
richtig, Sie würden zu ändern, die
name
Wert auf den Titel einer Kontrolle auf Ihrer Seite, und ändern Sie den Wert übergeben ppEditor.val()
zu einer der Benutzernamen, die Sie in Ihrer Personenauswahl. Das sollte genug sein, um zu replizieren, wenn Sie fügen Sie diese in ein anderes Skript, das Sie laufen haben, auf Ihrer Seite.Gut,
SPClientPeoplePicker
ist definiert, wenn die Seite geladen wurde, aber wohl nicht beim ausführen von code. Alle javascript-Bibliotheken geladen werden, die beim laden der Seite, aber Sie müssen möglicherweise warten, bis es geladen ist. Verwenden Sie einfach ExecuteOrDelayUntilScriptLoaded
zu warten, bis es zu laden, wie diese. ExecuteOrDelayUntilScriptLoaded(function () { //run your code here or call a function }, "clientpeoplepicker.js");
InformationsquelleAutor sigil | 2015-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, wie ich es Tat. Mit "fieldName" beeing die Spalte Titel der Personenauswahl und Benutzerkontoname der Benutzer login-name/letzten Teil der Forderung.
Einer Sache zu betonen ist, dass es ein client-Personenauswahl. Soweit ich weiß, verwendet sharepoint server-Seite Personenauswahl standardmäßig werden in benutzerdefinierten Formularen, so stellen Sie sicher, dass Ihr wirklich ein client Personenauswahl.
InformationsquelleAutor noobischernoob