我已查看此链接:
How to Check Rating Settings is enabled or not by Javascript in SharePoint 2010?
但是,一旦您已经激活(和停用)评级设置,这对列表不起作用,至少在Sharepoint 2013上没有。
我还检查过Microsoft.Sharepoint.Portal.dll中有一个ReputationHelper类,它用于激活或停用此功能:
http://prasadpathak.wordpress.com/2013/06/19/enable-rating-likes-settings-in-sharepoint-2013/
所以我试图使用visual studio打开dll但不知何故该类是内部的,我无法检查方法。甚至使用powershell来加载程序集并尝试为该类创建一个实例,但它也失败了。
您知道该类是否有方法调用,允许在列表中获取此评级设置的特定值?我试过GetReputation(一个幸运的猜测),但它没有用。
我还尝试使用其余服务http://sp.mydomain.com/_api/lists/GetByTitle(“页面”)获取列表架构,但架构未显示任何属性。你知道一种方法来获取特定列表的这个值,即使它已经被激活了吗?
由于
答案 0 :(得分:0)
是否必须通过JavaScript完成?
您可以尝试查看EnableReputation方法在已启用评级/喜欢时所执行的操作,可能会返回一个值,但我不确定如何获取该方法的返回值。这是我在任何给定列表上以编程方式启用Likes的代码:
private void ActivateLikesOnList(SPList list)
{
try
{
System.Reflection.Assembly assembly = System.Reflection.Assembly.Load("Microsoft.SharePoint.Portal, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c");
Type reputationHelper = assembly.GetType("Microsoft.SharePoint.Portal.ReputationHelper");
System.Reflection.MethodInfo method = reputationHelper.GetMethod("EnableReputation", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
method.Invoke(null, new Object[] { list, "Likes", false });
}
catch (Exception ex)
{
String msg = "Error while activating Likes on List" + " : {0} :: {1} :: {2}";
_DiagnosticService.WriteTrace(0, _DiagnosticCategory, TraceSeverity.Medium, msg, ex.Message, ex.StackTrace, ex.TargetSite);
}
}
我希望这能为你提供一个如何实现这一目标的提示。