Contexto:
Este control nos toda la funcionalidad de capturar los usuarios del Active Directory en nuestro elementos web personalizados tal y como lo hace SharePoint por lo que es muy útil y productivo.
Para los que no lo conocen este es un “screenshot” de como luce
Y en código HTML de un control de usuario luce así:
<SharePoint:PeopleEditor ID="CapturaAsignado" runat="server" IsValid="false" AllowEmpty="false"Height="20px" Width="400px" AllowTypeIn="true" MultiSelect="false" EnableViewState="true" />
Se debe declarar el ensamblado de los controles de SharePoint así:
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
Problema:
Bueno pero cual es el comportamiento curioso de este control; Dentro del código deshabilito el control dependiendo del usuario que este conectado y adivine qué? Pierde el valor que le fue asignado cuando se realiza un PostBack al servidor. No así cuando siempre esta habilitado no sucede lo mismo.
Solución alterna:
Dentro de la lógica del código en el evento load() verificar si esta deshabilitado el control es decir CapturaAsignado.Enabled = false. Si es así sabemos que ya no lleva el valor debemos de asignarlo nuevamente al control (para ello debimos haberlo guardado antes obviamente). Por ejemplo:
CapturaAsignado.CommaSeparatedAccounts = value;
Donde CapturaAsignado es el ID del control PeopleEditor y CommaSeparatedAccounts es su propiedad para asignar el login Name del usuario.
Espero evitarle un pequeño retraso en su trabajo.
Recuerde Code4Fun!,
Manolo Herrera
No hay comentarios.:
Publicar un comentario