Responsive Ads Here

Tuesday, July 17, 2012

Implementing a presence icon in asp.Net grid in a Visual WebPart


<tr>
<td align="left" valign="top">
              <asp:GridView ID="grdTeamInfo" runat="server"CssClass="TMGrid" GridLines="None" CellPadding="0" CellSpacing="0"AutoGenerateColumns="false" >
                 <Columns>
                    <asp:TemplateField HeaderText="Team Member Name">
                       <ItemTemplate>
                           <asp:Label ID="lblEmployeeName" runat="server"Text='<%# Eval("userPresence")%>'>
                           </asp:Label>
                       </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="Role" HeaderText="Role" />
                                   
                 </Columns>
              </asp:GridView>
       </td>
 </tr>




List<TeamMembers> lstTeamMembers;

//Get the team members user presence                           
     lstTeamMembers = GetUserPresence(dsProjectInfo);
                            
     if (lstTeamMembers.Count > 0)
     {
       grdTeamInfo.DataSource = lstTeamMembers;
       grdTeamInfo.DataBind();
                               
     }



GetUserPresence()
SPSecurity.RunWithElevatedPrivileges(delegate()
{
  //Populate Team Members
  TeamMembers objTeamMembers;
  UserProfile up_TeamMember = null;
  string empId;
  for (int i = 0; i < dsProjectInfo.Tables[1].Rows.Count; i++)
  {
       try
       {
                           
              empId = (dsProjectInfo.Tables[1].Rows[i]["Employee name"].ToString());
              if (!string.IsNullOrEmpty(empId))
                     up_TeamMember = GetUserProfileByEmployeeID(SPContext.Current.Site.Url,empId);
                     if (up_TeamMember != null)
                     {
                           objTeamMembers = new TeamMembers();
                           objTeamMembers.EmpID = dsProjectInfo.Tables[1].Rows[i]["Employee name"].ToString();
strEmail = (up_TeamMember[PropertyConstants.WorkEmail]. ToString                                objTeamMembers.EmpEmail = strEmail;                               
                                strFirstName = up_TeamMember.DisplayName;
                                strHtm = "<span><img border=\"0\" height=\"12\" src=\"/_layouts/images/imnhdr.gif\" onload=\"IMNRC('" + strEmail + "')\" ShowOfflinePawn=\"1\" alt=\"\" id=\"user_presence_icon" + i + "\"/></span>";
                                objTeamMembers.userPresence = strHtm + " "+ strFirstName + " " + strLastName;

                                objTeamMembers.Role = (dsProjectInfo.Tables[1].Rows[i]["Role"].ToString());
                                lstTeamMembers.Add(objTeamMembers);
                            }
                           
                        }
                        catch (Exception ex)
                        {
                            errorLogger.LogException("ERROR OCCURED WHILE PROCESSING - GetUserPresence : FOR LOOP" + ex.ToString());
                            continue;
                        }
                    }
                });
}

No comments:

Post a Comment