自定义webpart显示Lync状态球

LYNC状态球显示

参考了http://blogs.msdn.com/b/uksharepoint/archive/2010/05/07/office-communicator-integration-presence-in-a-custom-webpart-for-sharepoint-2010.aspx

这边是用户集来显示状态球,我小改了一下,把用户集合改成单个用户

public string GetPresenceHTMLFromUVC1(SPSite thisSite, SPFieldUserValue spuv)

        {

            StringBuilder abc = new StringBuilder("");

           

            SPSecurity.RunWithElevatedPrivileges(delegate

            {

                using (SPWeb thisWeb = thisSite.RootWeb)

                {

                    string sipAddress = "";

                    SPListItem user = thisWeb.SiteUserInfoList.GetItemById(spuv.LookupId);

                    if (user["EMail"] != null)

                    {

                        sipAddress = "sip:" + user["EMail"].ToString();

                    }

 

                    abc.Append(String.Concat(

                     "<img border=\"0\" height=\"12\" src=\"/_layouts/images/imnhdr.gif\" onload=\"IMNRC('"

                    , sipAddress

                    , "')\" ShowOfflinePawn=\"1\" style=\"padding-right: 3px;\" id=\"PresencePawn"

                    , sipAddress

                    , "\" alt=\"presence pawn for "

                    , sipAddress

                    , "\"/>"

                    , spuv.User.Name

                    ));

 

                }

            });

            return abc.ToString();

 

直接传单个用户,省去遍历用户的ID

我这边SIP用的是EMAIL的地址,而SIP为空,这边取的是EMAIL的值

效果如下(IMNRC这个只在IE中有效):

posted @ 2013-08-27 10:11  ㊣小虎  阅读(348)  评论(0编辑  收藏  举报