PeopleEditor med ifyllt värde
By Anatoly Mironov
I vissa fall är det bra att ha ett ifyllt värde i PeoplePicker, till exempel, namn på personen som kör koden. Det finns olika beskrivningar om hur man gör det. Allmänt, och mer specifikt för webparts. Jag har även testat kod från boken Sharepoint 2010 as a Development Platform:
private PeopleEditor peopleEditor;
private void EnsureChildControls()
{
peopleEditor = new PeopleEditor();
peopleEditor.AutoPostBack = true;
peopleEditor.ID = "MyPeopleEditor";
peopleEditor.AllowEmpty = false;
peopleEditor.MultiSelect = true;
peopleEditor.SelectionSet = "User,SPGroup" ;
MyPanel.Controls.Add(peopleEditor);
}
protected void initPeopleEditor()
{
PickerEntity entity = new PickerEntity();
entity.Key = SPContext.Current.Web.CurrentUser.LoginName;
// Make sure the entity is correct
entity = peopleEditor.ValidateEntity(entity);
ArrayList entityArrayList = new ArrayList();
entityArrayList.Add(entity);
peopleEditor.UpdateEntities(entityArrayList);
}
```Problemet med denna kod är att man får felet "Ingen exakt matchning" och man kan inte submitta. I application pages kan man enkelt fylla i aktuella användaren genom att ändra **CommaSeparatedAccounts** property i **Page\_Load**\-metoden.
peopleEditor.CommaSeparatedAccounts = SPContext.Current.Web.CurrentUser.LoginName;
<SharePoint:PeopleEditor ID=“siteOwners” runat=“server” ValidatorEnabled=“true” AllowEmpty=“false” MultiSelect=“false” SelectionSet=“User” CommaSeparatedAccounts="<%# SPContext.Current.Web.CurrentUser.LoginName %>" />