¿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:
Publicar un comentario