我的新闻信息是用列表保存的,现在要统计每一条新闻访问的次数。
请问怎么实现? 有没有好的办法? 急。。。。求助高人出手,最好在DispForm.aspx中写JS就可以实现,因为我没有服务器的部署权限。
需要开启审计功能,可以保存访问的信息,只写JS不容易持久化这些信息。
那用户访问新闻的时候也是进入这个列表的view item页面吗?如果是,那只能通过Audit实现。
如果是你自己的自定义页面,那么在你的页面逻辑里面,每次都给item += 1就好了。
虽然网站栏为用户和开发人员提供了可重用的新功能,但您可定义一个功能更为强大的可重用栏定义。利用 Microsoft SharePoint Foundation 2010,可以通过创建自定义字段类型下拉到一个较低级别。
此 Microsoft SharePoint 直观操作方法中演示的过程提供了一个示例,该示例演示如何为产品代码创建自定义字段类型。以下是创建自定义字段类型所需的高级步骤。
创建自定义字段控件
1.创建公共自定义字段类型类,该类将从某个内置字段类型类(例如,SPFieldBoolen、SPFieldChoice 或 SPFieldText)继承。
2.添加使用特定参数列表签名的两个公共构造函数,并将这些参数转发到包含匹配签名的基类构造函数。
3.创建一个称作“字段类型部署文件”的 XML 文件。必须将它部署到一个已知目录,该目录将在服务器场范围内激活自定义字段类型。
创建自定义字段类
必须将自定义字段类定义为公共类,并且必须提供两个非默认构造函数。此示例还演示如何通过重写 GetValidatedString 方法来使用正则表达式验证字段值。
C#复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace WingtipCustomFields {
public class ProductCode : SPFieldText {
public ProductCode(SPFieldCollection fields, string fName)
: base(fields, fName) { }
public ProductCode(SPFieldCollection fields,
string tName, string dName)
: base(fields, tName, dName) { }
public override string DefaultValue {
get { return "P001"; }
}
public override string GetValidatedString(object value) {
if (!value.ToString().StartsWith("P")) {
throw new SPFieldValidationException(
"Product code must start with 'P'");
}
if (value.ToString().Length != 4) {
throw new SPFieldValidationException(
"Product code must be 4 chars");
}
// Always convert to uppercase before writing to Content DB.
return value.ToString().ToUpper();
}
}
}
创建字段类型部署文件
字段类型部署文件包含自定义字段类型的协作应用程序标记语言 (CAML) 定义。您必须按 fieldtypes*.xml 的模式为此文件命名,然后将此文件部署到 14\TEMPLATE\XML 目录中。在此示例中,文件的名称为 fldtypes_WingtipCustomFields.xml。
注释:借助于 Microsoft Visual Studio 2010 中的 SharePoint 开发工具,可以用 $SharePoint.Project.AssemblyFullName$ 标记替代实际程序集名称。当您将源文件编译为解决方案包时,SharePoint 工具会将此标记替换为程序集名称。
XML复制
<FieldTypes>
<FieldType>
<Field Name="TypeName">ProductCode</Field>
<Field Name="ParentType">Text</Field>
<Field Name="TypeDisplayName">Product Code</Field>
<Field Name="TypeShortDescription">Wingtip Product Code</Field>
<Field Name="UserCreatable">TRUE</Field>
<Field Name="FieldTypeClass">
WingtipCustomFields.ProductCode,
$SharePoint.Project.AssemblyFullName$
</Field>
</FieldType>
</FieldTypes>
了解如何创建自定义字段类型后,您便能对 SharePoint Foundation 2010 提供的内容进行最大限度的控制,这些内容用于为用户创建完善的用户界面以显示和编辑栏值。通过开发自定义字段类型,您可以利用一种功能强大的新方法,在允许将用户输入值写入内容数据库之前执行数据验证。