MyException - 我的异常网
当前位置:我的异常网» 编程 » sharepoint 2010 怎么用SocialCommentManager获取记

sharepoint 2010 怎么用SocialCommentManager获取记事板评论数据

www.MyException.Cn  网友分享于:2013-02-21  浏览:7次
sharepoint 2010 如何用SocialCommentManager获取记事板评论数据

前面有一篇文章,提到sharepoint 2010 如何给文档库或自定义列表添加评论功能

那么如何获取里面的评论数据,以下是获取数据的方法介绍。

首先,我们看看下面这个文档,里面有5条评论。

下面我们通过程序去获取这个文档的所有评论,先引用两个DLL文件 :Microsoft.Office.Server.dll ,Microsoft.Office.Server.UserProfiles.dll

            SocialComment[] comments = null;
            SPSecurity.RunWithElevatedPrivileges(delegate
            {

                SPSite site = new SPSite(SPContext.Current.Site.ID);
                var ctx = HttpContext.Current;
                try
                {
                    SPServiceContext context = SPServiceContext.GetContext(site);
                    SocialCommentManager socialCommentManager = new SocialCommentManager(context);
                    SPServiceContext sc = SPServiceContext.GetContext(site);
                    HttpContext.Current = null;

                    comments = socialCommentManager.GetComments((new Uri("http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx")));
                    DataTable dt = new DataTable();
                    dt.Columns.Add("评论主题");
                    dt.Columns.Add("评论内容");
                    dt.Columns.Add("评论人");
                    dt.Columns.Add("评论时间");
                    dt.Columns.Add("主题地址");
                    for (int i = 0; i < comments.Length; i++)
                    {
                        DataRow dr = dt.NewRow();
                        dr["评论主题"] = comments[i].Title;
                        dr["评论内容"] = comments[i].Comment;
                        dr["评论人"] = comments[i].Owner.DisplayName;
                        dr["评论时间"] = comments[i].LastModifiedTime.AddHours(8);
                        dr["主题地址"] = comments[i].Url;
                        dt.Rows.Add(dr);
                    }
                    GridView1.DataSource = dt;
                    GridView1.DataBind();
                }
                catch (Exception ex)
                {
                    

                }
                finally
                {
                    HttpContext.Current = ctx;
                    site.Close();
                }
            });

这样我们就拿到了该文档的所有评论,如下表格。 

评论主题 评论内容 评论人 评论时间 主题地址
共享文档 - 新建 Microsoft Excel 工作表.xlsx werwe CXX\cxx 2013/2/2 14:47:46 http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx
共享文档 - 新建 Microsoft Excel 工作表.xlsx 1244ed CXX\cxx 2013/2/2 14:47:36 http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx
共享文档 - 新建 Microsoft Excel 工作表.xlsx wwwwww CXX\cxx 2013/2/2 12:23:29 http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx
共享文档 - 新建 Microsoft Excel 工作表.xlsx were CXX\mossadmin 2013/2/2 9:24:23 http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx
共享文档 - 新建 Microsoft Excel 工作表.xlsx 123 CXX\mossadmin 2013/2/2 9:24:14 http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx

如果只是想获取某一个用户的评论数据,则需要添加一个过滤条件,修改下上面的方法,添加一个UserProfile,

SPServiceContext context = SPServiceContext.GetContext(site);
SocialCommentManager socialCommentManager = new SocialCommentManager(context);
SPServiceContext sc = SPServiceContext.GetContext(site);
UserProfileManager upm = new UserProfileManager(sc);
UserProfile user = upm.GetUserProfile(@"cxx\cxx");  
HttpContext.Current = null;
 comments = socialCommentManager.GetComments(user,(new Uri("http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx")));

绑定到Gridview后的效果如下 :

评论主题 评论内容 评论人 评论时间 主题地址
共享文档 - 新建 Microsoft Excel 工作表.xlsx werwe CXX\cxx 2013/2/2 14:47:46 http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx
共享文档 - 新建 Microsoft Excel 工作表.xlsx 1244ed CXX\cxx 2013/2/2 14:47:36 http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx
共享文档 - 新建 Microsoft Excel 工作表.xlsx wwwwww CXX\cxx 2013/2/2 12:23:29 http://moss/Shared Documents/新建 Microsoft Excel 工作表.xlsx

 

以上就是关于记事板获取评论数据的方法。

广州京微信息科技有限公司,微软sharepoint解决方案提供商。

 

1楼w3080996782013-02-04 09:32
哇 大神啊

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有