jueves, 13 de mayo de 2010

Propiedad CustomProperty del PeoplePicker

Una vez que ya sabemos cómo extender la funcionalidad del peoplepicker. Hay un tópico que es de mucha utilidad para darle mayor poder a nuestro control.

¿Qué pasa si queremos enviarle un dato a nuestro control para utilizarlo dentro la lógica de recuperación, filtrado y presentación de datos?

Pues en estos casos existe la propiedad CustomProperty de tipo string que heredamos de EntityEditorWithPicker, y que podemos utiizar para propósitos diversos.

Escenario:
En mi caso, yo necesitaba excluir a algunos usuarios (sin ninguna relación preestablecida). Por lo que al instanciar el control CustomPeoplePicker asignaba en una cadena separada por comas, los usuarios que no podían ser seleccionados en el control.

protected override void CreateChildControls()
{
 if (!_error)
 {
  try
  {

   base.CreateChildControls();
   Blog.WebControls.CustomPeoplePicker picker = new Blog.WebControls.CustomPeoplePicker();
   picker.CustomProperty = "juan.topo@contoso.com";
   picker.ID = "customPicker1";

   // Your code here...
   this.Controls.Add(picker);
  }
  catch (Exception ex)
  {
   HandleException(ex);
  }
 }
}

Acto seguido recuperaba la propiedad en el método OnLoad de la clase CustomPickerDialog que deriva de PickerDialog.

protected override void OnLoad(EventArgs e)
 {
  CustomQueryControl control = (CustomQueryControl)this.QueryControl;
  control.ExcludedUsers = this.Page.Request.QueryString["CustomProperty"];
  base.OnLoad(e);
 }
Como se puede observar, el parámetro que establecimos previamente, es pasado en el querystring hacia el PickerDialog con el key "CustomProperty". Una vez recuperado podemos asignarlo a alguna propoedad propia para ser utilizada posteriormente.



Dejo el codigo completo de la solución para mayor referencia.



Happy coding!

0 comentarios:

Etiquetas

SharePoint 2010 (38) Microsoft (32) Desarrollo SharePoint (31) Gerardo Reyes Ortiz (27) SharePoint (20) SharePoint 2013 (18) Errores SharePoint (12) México (10) PowerShell (9) Silverlight (8) Visio Services (7) Features (6) MVP (6) Silverlight 3 (6) WebCast (6) Workflows (6) Configuracion SharePoint 2010 (5) D.F. (5) API REST (4) Configuracion SharePoint 2010; (4) Troubleshooting (4) Visual Studio 2010 (4) Visual studio (4) WSS (4) Web parts (4) Apps (3) Comunidad SharePoint (3) Configuración SharePoint 2013 (3) ODATA (3) SharePoint Server (3) SharePoint; Instalación SharePoint; Troubleshooting; Search Service (3) Silverlight 3.0 (3) Silverlight Toolkit (3) WebParts (3) javascript (3) jquery (3) Eventos SharePoint (2) Office 2010 (2) PeoplePicker (2) REST (2) SQL Server (2) Scripting (2) Search Service Application (2) SharePoint Designer (2) UPA (2) UPS (2) Workflows SharePoint (2) host header (2) Apps Development (1) Big Bang (1) CAS (1) CSOM (1) Codeplex (1) CompartiMOSS (1) Configuracion SharePoint 2010; Errores SharePoint (1) Configuracion SharePoint 2010; SharePoint 2010 (1) Custom Actions (1) Custom Editor Parts (1) Delegate Controls (1) Deployment (1) DisableLoopbackCheck (1) Document Library (1) Entrevista (1) Examenes de Certificación (1) Extract WSP (1) FBA (1) FS4SP (1) Fakes (1) Fast Search Server 2010 For SharePoint (1) Fiddler (1) HTTP.SYS (1) HTTPS (1) JSON (1) Language Pack's (1) Latam (1) MAXDOP (1) MCSM (1) MSExpertos (1) MVC (1) Microsoft México (1) Microsoft; Codeplex; Screencast; (1) My Sites (1) SQL Server 2012 (1) SQL Server Reporting Services (1) Screencast (1) Screencast; (1) Service Applications (1) Service Pack (1) SharePoint 2007 (1) SharePoint 2010 SP 1 (1) SharePoint API (1) SharePoint Conference (1) SharePoint Emulators (1) SharePoint Farm (1) SharePoint Health Analyzer (1) SharePoint Magazine (1) SharePoint Online (1) SharePoint Search (1) SharePoint Test (1) SharePoint; Desarrollo SharePoint (1) Shims (1) Simposio (1) Simposio Latinoamericano (1) SkyDrive Pro (1) Soporte Microsoft (1) Templates (1) Tip (1) VSeWSS (1) Virtual Machine (1) Visual Studio 2012 (1) WCF (1) WSS; IIS 7 (1) Web API (1) Web Content Management (1) Web Services (1) Windows 8 (1) Windows Live ID (1) Xml (1) appcmd (1) iOS (1) jqGrid (1) onload function (1)