Hi All,
Many times we need to cast a list item to a SPUser object. It can easily done using these steps:
Step1: Get the current item
SPListItem currentItem = properties.ListItem;
Step2: Get the value display name of the current logged in user and Created by Field of the current item
currentUser = currentItem["Author"].ToString();
Step3: Get the user id as integer
int userid = Convert.ToInt32(currentUser.Substring(0, currentUser.IndexOf(";#")));
int userid = Convert.ToInt32(currentUser.
Step4: Convert SharePoint user which matches the ID
SPUser user = currentTeamSite.AllUsers.GetByID(userid);
SPUser user = currentTeamSite.AllUsers.
There is one more case where we have number of users. In this scenario,
we can loop the users:
--------------------------------------------------------------------------------
// get a reference to the "Alerts" list as an instance
SPList alerts = spWebRoot.Lists["Checklists Alerts"];
SPList alerts = spWebRoot.Lists["Checklists Alerts"];
// get the query object for user alert
SPQuery queryUserAlert = new SPQuery();
SPQuery queryUserAlert = new SPQuery();
queryUserAlert.Query = "" +
"" +
"" +
"" + teamName + " " +
" " +
" ";
SPListItemCollection noOfUsers = alerts.GetItems(queryUserAlert);
//Get all the users in that team (such as Desktop Support - Daily)
foreach (SPListItem item in noOfUsers)
{
//Use "GetUser" function for List "item" into a SPUser ojbect
SPUser user = GetUser(item, item.Fields["User"]);
"
"
"
"
"
SPListItemCollection noOfUsers = alerts.GetItems(queryUserAlert);
//Get all the users in that team (such as Desktop Support - Daily)
foreach (SPListItem item in noOfUsers)
{
//Use "GetUser" function for List "item" into a SPUser ojbect
SPUser user = GetUser(item, item.Fields["User"]);
// REMAINING LOGIC
}
private SPUser GetUser(SPListItem item, SPField userField)
{
string currentValue = item[userField.Title].ToString();
SPFieldUser field = (SPFieldUser)userField;
SPFieldUserValue fieldValue = (SPFieldUserValue)field.GetFieldValue(currentValue);
return fieldValue.User;
}
{
string currentValue = item[userField.Title].ToString();
SPFieldUser field = (SPFieldUser)userField;
SPFieldUserValue fieldValue = (SPFieldUserValue)field.GetFieldValue(currentValue);
return fieldValue.User;
}
Happy Coding,
Cheers
--Pravyn
No comments:
Post a Comment