Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
I'm using the SharePoint PeopleEditor to select a user and when the user is selected I want to populate a few fields with information about that user, I retrieve the data from AD. The problem I had was how do I make the PeopleEditor send a signal to my code that a value has been set?! There is no event on the PeopleEditor control which is fired when a value is set.
I first asked myself this question about a month ago, but as I have been unable to find an answer I added a button to my form which says "Retrieve Userinformation". This is not the normal way of UI design and during a demo for the customer today they made a remark about it, so I decided to take another look at this problem.
It took me almost an hour to realize that there is a property called AutoPostBack on some server controls. When you set this property a Postback will be generated when a value is set in the control. As you may understand from my lack of knowledge in this area ASP.NET UI design is not my primary competence, but in most cases I know enough to get the job done.
<SharePoint:PeopleEditor AutoPostBack="true" ID="peUser" runat="server" />
In the case of the PeopleEditor this means that when you type a username and click Check names (or hit enter) or use the Addressbook to select a user you will receive a generic postback, no specific event i raised by the page is reloaded. Therefore you can have code in your Page_Load which checks if a value has been selected and take some action.
string accountName = null;
if (peUser.ResolvedEntities.Count > 0)
{
PickerEntity entity = (PickerEntity)peUser.ResolvedEntities[0];accountName = entity.Key;
int pos = accountName.IndexOf('\\');
accountName = accountName.Substring(pos + 1);// take some action based on accountName
}
In essence the AutoPostBack acts as an event generator which lets you perform an action when the value of the control is set. A discussion about AutoPostBack can be found at https://www.dotnetspider.com/kb/Article195.aspx, this is not PeopleEditor specific.
Comments
Anonymous
February 14, 2008
PingBack from http://www.biosensorab.org/2008/02/15/postback-event-when-using-sharepointpeopleeditor/Anonymous
November 30, 2014
What if ,user wants to same data. At that time also, a page postback occurs , and same code will run to check user in control.