Il blog di Giuseppe Marchi - SharePoint MVP
NAVIGATION - SEARCH

Il controllo PeopleEditor di WSS

Era da un pò che pensavo al modo in cui poter utilizzare il controllo web SPFieldUser al di fuori di una form di inserimento e/o modificata di una lista Sharepoint, perchè mi piaceva mantere l'utilizzo del pop-up di ricerca utenti e gruppi. Solamente che, in pratica, se messo in una pagina diversa da NewForm.aspx e da EditForm.aspx, tale controllo in fase di rendering fa andare in eccezione tutta la pagina.
Il problema è che sbagliavo proprio controllo... si deve utilizzare il PeopleEditor, in grado proprio di fare da campo di testo per la ricerca di utenti e gruppi:

<SharePoint:PeopleEditor id="utentiPrivati" runat="server"

SelectionSet="User,SecGroup,SPGroup"
ValidatorEnabled="true"
AllowEmpty = "false"
MultiSelect = "true"
/>

Se vogliamo far selezionare solo utenti, diamo solamente il valore User alla proprietà SelectionSet, mentre se volgiamo far selezionare solo gruppi, diamo il valore SPGroup.
Lato server, è possibile recuperare le informazioni da tale controllo in questo modo:

SPUser user = null;

SPGroup group = null;
for (int i = 0; i < utentiPrivati.Accounts.Count; i++)
{
string account = utentiPrivati.Accounts[i].ToString();
try
{
//account: DOMAIN\loginname user = web.AllUsers[account];
}
catch
{
//account: GroupName group = web.Groups[account];
}
}
blog comments powered by Disqus