2010-04-06 29 views
1

我想在我的自定義web部件中顯示我的同事。所以我給每個同事添加了存在圖標。當同事只有1時顯示正常。如果我們有同事超過1 存在圖標顯示第一個同事你可以下拉該圖標,但其他同事它顯示簡單的Presense圖標(灰色)(不下拉即將來臨)。只顯示第一人的存在圖標

代碼是這樣的。

private static Panel GetUserInfo(UserProfile profile,Panel html, int cnt) 
    { 
     LiteralControl imnrc = new LiteralControl(); 
     imnrc.Text = "<span style=\"padding: 0 5px 0 5px;\"><img border=\"0\" valign=\"middle\" height=\"12\" width=\"12\" src=\"/_layouts/images/imnhdr.gif\" onload=\"IMNRC('" + profile[PropertyConstants.WorkEmail].Value.ToString() + "')\" ShowOfflinePawn=1 id=\"IMID[GUID]\" ></span>"; 

     html.Controls.Add(imnrc); html.Controls.Add(GetNameControl(profile)); //html.Controls.Add(new LiteralControl("<br>")); 


     return html; 
    } 

private static Control GetNameControl(UserProfile profile) 
    { 
     //bool hasMySite = profile[PropertyConstants.PublicSiteRedirect].Value == null ? false : true; 
     bool hasMySite =string.IsNullOrEmpty(profile.PublicUrl.ToString()) ? false : true; 
     string name = profile[PropertyConstants.PreferredName].Value.ToString(); 

     if (hasMySite) 
     { 
      HyperLink control = new HyperLink(); 
      control.NavigateUrl = String.IsNullOrEmpty(profile.PublicUrl.ToString()) ? null : profile.PublicUrl.ToString(); 
      control.Style.Add("text-decoration","none"); 
      control.Text = name; 
      return control; 
     } 
     else 
     { 
      LiteralControl control = new LiteralControl(); 
      control.Text = name; 
      return control; 
     } 
    } 

http://i700.photobucket.com/albums/ww5/vsrikanth/presence-1.jpg

回答

3

你的IMG需要有一個唯一的ID集。它看起來像你幾乎那裏,分配值「IMID[GUID]

而是嘗試:

imnrc.Text = "<span style=\"padding: 0 5px 0 5px;\"><img border=\"0\" valign=\"middle\" height=\"12\" width=\"12\" src=\"/_layouts/images/imnhdr.gif\" onload=\"IMNRC('" + profile[PropertyConstants.WorkEmail].Value.ToString() + "')\" ShowOfflinePawn=1 id=\"IMID" + Guid.NewGuid().ToString() + "\" ></span>";