SharePoint中Rating相关的字段。

?

From: https://sharepoint.stackexchange.com/questions/194197/how-to-manipulate-likeby-nooflikes-ratedby-averagerating-userrating-using-cs

Copy below:

?

Gone through the problem an got the relevant answer also made blog on it so visit the?blog post

Some of the important aspects covered are described breifly as follows.

To rate an Item for the first time by a user the following fields should be modified with the respective field values:

  1. item["RatingCount"]:

    This field stores the number of users who have rated the item its value should be incremented.

  2. item["Ratings"]:

    A field which stores the user ratings in CSV string format should add the new users rating like.

    int
    NewRating = 4; //any desired number from 1 to 5.

    item["Ratings"] += NewRating + ",";

  3. item["AverageRating"]:

    This field stores the average of the ratings given by all the rated users. Simple weighted average calculation formulas can be implemented which is

    float
    OldAverage = item["AverageRating"] == null ? 0 : float.Parse(item["AverageRating"].ToString());

    int
    OldNumberOfRatings = item["RatingCount"] == null ? 0 : int.Parse(item["RatingCount"].ToString());

    int
    NewNumberOfRatings = OldNumberOfRatings + 1;

    ?

    float
    NewAverage = OldAverage + ( ( NewRating - OldAverage ) / NewNumberOfRatings);

    //Or.

    float
    NewAverage = ( ( OldAverage * OldNumberOfRatings ) + NewRating ) / NewNumberOfRatings;

    ?

    item["AverageRating"] = NewAverage;

  4. item["RatedBy"]:

    This field stores the user information in form of array of?FieldUserValue?which can be modified using following code

    FieldUserValue[] ratedUsers = item["RatedBy"] as
    FieldUserValue[];

    //where ratedUsers becomes an array of users who have already rated.

    List<FieldUserValue> newUsersRated = new
    List<FieldUserValue>();

    if (ratedUsers != null)

    foreach (FieldUserValue ratedUser in ratedUsers)

    newUsersRated.Add(ratedUser);

    newUsersRated.Add(FieldUserValue.FromUser(user.LoginName));

    item["RatedBy"] = newUsersRated;

To Rerate the item for a user who has already rated it before you need to first find the user index (say?int userIndex) in the?item["RatedBy"]?field then change the following fields:

  1. item["Ratings"]:

    Change the user rating in this CSV string by use of?userIndex.

    FieldUserValue[] ratedUsers = item["RatedBy"] as
    FieldUserValue[];

    for (int i = 0; i < ratedUsers.Length; i++)

    if (ratedUsers[i].LookupValue == user.Title)

    int userIndex = i;

    string[] userRatings = item["Ratings"].split(‘,‘);

    int
    OldRating = int.Parse(userRatings[userIndex]);

    int
    NewRating = 3; //any desired number from 1 to 5.

    userRatings[userIndex] = NewRating.ToString();

    string ratings = userRatings.Join(‘,‘, userRatings);

    item["Ratings"] = ratings;

  2. item["AverageRating"]:

    change the average value using formula

    float
    OldAverage = item["AverageRating"];

    int
    NumberOfRatings = item["RatingCount"];

    float
    NewAverage = OldAverage + ( ( NewRating - OldRating ) / NumberOfRatings );

    item["AverageRating"] = NewAverage;

SharePoint中Rating相关的字段。

时间: 2024-10-11 22:05:10

SharePoint中Rating相关的字段。的相关文章

如何用VS2010在SharePoint中创建自定义字段类型(以eWebEditor为例)

如何用VS2010在SharePoint中创建自定义字段类型(以eWebEditor为例) 前提 项目中用到eWebEditor作为在线编辑器替换sharepoint2010自动的多行编辑器,下面以eWebEditor作为自定义字段类型为例来讲述如何用VS2010在sharepoint中创建自定义字段类型. 开发 1. 首先用VS2010创建一个空的sharepoint2010项目,如下图: 指向sharepoint站点,部署为场解决方案,如下图: 2. 在解决方案上添加“映射文件”,指向TEM

如何在SharePoint中配置和自定义Content Query Web Part

如何在SharePoint中配置和自定义Content Query Web Part 2014-01-07 11:15 718人阅读 评论(0) 收藏 举报 之前有一篇blog提到过SharePoint中的Content Query Web Part (CQWP),说的是当SharePoint开启了匿名访问模式后,Content Query Web Part读取Document Library数据失败的问题.从这篇博客开始,我将说一下Content Query Web Part这个东西能做什么,

在sharepoint中利用文档库扩展新闻应用

在sharepoint中利用文档库扩展新闻应用 本人刚刚开始使用Sharepoint,理解尚浅,错误之处请各位指正.Sharepoint的发布类模板可以建立对外的新闻类应用,但是目前在使用上还有诸多限制,不是很方便.在前一段时间给用户实施时引起了用户的很大不满.为此,特意在文档库的基础上建立了一套新闻管理系统,这套新闻系统主要有新闻发布与编辑,新闻列表.新闻浏览.分类管理等组成,主要用web part方式实现,各种参数按需传入,可以按照需要,灵活配置,下面先从与文档库结合紧密的分类管理说起:1.

Sharepoint 2013列表视图和字段权限扩展插件!

记得2014年春节期间,有博客园的网友通过QQ向我咨询Sharepoint 2013列表视图和字段权限扩展,因为之前他看到我博客介绍Sharepoint 2010列表视图和字段的权限控制扩展使用,问有没有这方面的列表权限扩展插件?我告诉他Sharepoint 2010的列表权限扩展插件并不能在Sharepoint 2013中使用,不能向上兼容的,且Sharepoint 2013的功能也有所升级了,系统底层架构已发生了一些变化.由于他需要在Sharepoint 2013项目中使用到此功能,有大量的

理解CSV文件以及ABAP中的相关操作

在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separator:两个字段之间的界线,在CSV文件中即是“,”. Delimiter:这种符号的开端和结束,代表了某种东西的界限.举个例子“测试字符串”有两个delimiters,即两个双引号.在很多逗号需要成为文本的情况下,这些CSV文件会使用双引号作为Delimiter. Terminator : 代表片段

(笔记)Linux内核中内存相关的操作函数

linux内核中内存相关的操作函数 1.kmalloc()/kfree() static __always_inline void *kmalloc(size_t size, gfp_t flags) 内核空间申请指定大小的内存区域,返回内核空间虚拟地址.在函数实现中,如果申请的内存空间较大的话,会从buddy系统申请若干内存页面,如果申请的内存空间大小较小的话,会从slab系统中申请内存空间.有关buddy和slab,请参见<linux内核之内存管理.doc> gfp_t flags 的选项

iOS开发 Xcode中的Info.plist字段含义

Info.plist用于向iOS提供关于app,bundle或者framework的一些重要信息.它指定了比如一个应用应该怎样启动,它如何被本地化,应用的名称,要显示的图标,还有更多.Info.plist文件实际上是苹果预定义schema的XML文件. 为了构建一个设备相关的健,你在健的后面要加上~iphone或者~ipad. 常用字段: 1.获取版本信息: NSDictionary*infoDic = [[NSBundle mainBundle] infoDictionary]; NSStri

Xcode中的Info.plist字段列表详解

Info.plist用于向iOS提供关于app,bundle或者framework的一些重要信息.它指定了比如一个应用应该怎样启动,它如何被本地化,应用的名称,要显示的图标,还有更多.Info.plist文件实际上是苹果预定义schema的XML文件. 为了构建一个设备相关的健,你在健的后面要加上~iphone或者~ipad. 常用字段:   1.获取版本信息: NSDictionary*infoDic = [[NSBundle mainBundle] infoDictionary]; NSSt

WordPress数据库中的表、字段、类型及说明

wp_categories: 用于保存分类相关信息的表.包括了5个字段,分别是: cat_ID – 每个分类唯一的ID号,为一个bigint(20)值,且带有附加属性auto_increment. cat_name – 某个分类的名称,为一个varchar(55)值. category_nicename – 指定给分类的一个便于记住的名字,也就是所谓的slug,这是一个varchar(200)值. category_description – 某个分类的详细说明,longtext型值. cate